Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 tbsp olive oil
- 1 tbsp butter (optional)
- 1 large onion, finely diced
- 1 carrot, finely diced
- 1 celery rib, finely diced
- 4 cloves garlic, minced
- 1 1/2 lb ground pork
- 1 1/2 tsp kosher salt, plus more to taste
- 1 tsp black pepper
- 2 1/2 tsp fennel seeds, lightly crushed
- 1/4 tsp red pepper flakes (optional)
- 2 tbsp tomato paste
- 1 cup dry white wine
- 1 (28 oz) can crushed tomatoes
- 1 cup chicken stock or water
- 1 bay leaf
- 1 tsp dried oregano
- 1 tsp sugar (optional)
- 1/4 cup whole milk or heavy cream
- 2 tbsp chopped fresh parsley
- 1 lb hearty dried pasta (pappardelle, rigatoni, etc.)
- Freshly grated Parmesan, for serving
Do This
- 1. Soften onion, carrot, and celery in olive oil and butter over medium heat until golden and sweet, then add garlic.
- 2. Add ground pork, salt, pepper, fennel seeds, and red pepper flakes; cook, breaking it up, until well browned with crispy edges.
- 3. Stir in tomato paste and cook until darkened, then pour in wine and simmer, scraping up browned bits until reduced by about half.
- 4. Add crushed tomatoes, stock, bay leaf, oregano, and sugar; bring to a gentle simmer, then cook uncovered 1 1/2 to 2 hours, stirring occasionally.
- 5. In the last 10 minutes, boil pasta in salted water until al dente; reserve 1 cup pasta water.
- 6. Stir milk (or cream) and parsley into the ragu; simmer a few minutes, then adjust salt, pepper, and thickness with a splash of pasta water if needed.
- 7. Toss pasta with enough ragu to coat, plate, and top with extra sauce, Parmesan, olive oil, and black pepper.
Why You’ll Love This Recipe
- Deeply aromatic pork and fennel flavors that taste like you simmered all day, with simple, everyday ingredients.
- Perfect cold-weather comfort food: rich, hearty, and cozy over wide noodles or any sturdy pasta.
- Make-ahead friendly: the ragu tastes even better the next day and freezes beautifully.
- Adaptable base sauce you can tweak with different wines, herbs, or even swap in sausage.
Grocery List
- Produce: 1 large onion, 1 carrot, 1 celery rib, 4 cloves garlic, fresh parsley (and optional fresh thyme), optional crusty bread for serving
- Dairy: Butter, whole milk or heavy cream, Parmesan cheese
- Pantry: Olive oil, ground pork, kosher salt, black pepper, fennel seeds, red pepper flakes, tomato paste, 1 (28 oz) can crushed tomatoes, chicken stock or water, dry white wine, bay leaf, dried oregano, sugar, dried pasta
Full Ingredients
For the Pork and Fennel Seed Ragu
- 2 tbsp olive oil
- 1 tbsp unsalted butter (optional but adds richness)
- 1 large yellow onion, finely diced (about 1 1/2 cups)
- 1 medium carrot, finely diced (about 1/2 cup)
- 1 celery rib, finely diced (about 1/2 cup)
- 4 cloves garlic, thinly sliced or minced
- 1 1/2 lb ground pork (about 85% lean for best flavor)
- 1 1/2 tsp kosher salt, plus more to taste
- 1 tsp freshly ground black pepper
- 2 1/2 tsp whole fennel seeds, lightly crushed (with a mortar and pestle or the bottom of a pan)
- 1/4 tsp red pepper flakes (optional, for gentle heat)
- 2 tbsp tomato paste
- 1 cup dry white wine (such as Pinot Grigio or Sauvignon Blanc; or use a dry red wine if you prefer)
- 1 (28 oz) can crushed tomatoes (or whole peeled tomatoes hand-crushed in a bowl)
- 1 cup low-sodium chicken stock or water
- 1 bay leaf
- 1 tsp dried oregano (or Italian seasoning)
- 1 tsp sugar (optional, to balance acidity)
- 1 small Parmesan rind (about 2 inches, optional but highly recommended)
- 1/4 cup whole milk or heavy cream
- 2 tbsp chopped fresh flat-leaf parsley
For the Pasta and Serving
- 1 lb hearty dried pasta, such as pappardelle, tagliatelle, rigatoni, or paccheri
- Kosher salt for pasta water (about 1 1/2 to 2 tbsp for a large pot of water)
- 3/4 to 1 cup freshly grated Parmesan cheese, plus more at the table
- Extra-virgin olive oil, for drizzling
- Freshly ground black pepper
- Extra chopped fresh parsley, for garnish (optional)
- Crusty bread, for serving (optional but great for scooping up extra sauce)

Step-by-Step Instructions
Step 1: Prep your aromatics and ingredients
Finely dice the onion, carrot, and celery so they cook evenly and melt into the sauce. Mince or thinly slice the garlic. Lightly crush the fennel seeds in a mortar and pestle or between two sheets of parchment with the bottom of a pan; you want them cracked, not powdered, so their flavor perfumes the sauce.
Measure out the tomato paste, wine, crushed tomatoes, and stock so they are ready to go. If using a Parmesan rind, have it nearby. This recipe moves quickly at the beginning, so a little organization makes it much easier.
Step 2: Build a flavorful vegetable base
In a large, heavy pot or Dutch oven, heat the olive oil and butter over medium heat until the butter is melted and just foamy. Add the diced onion, carrot, and celery along with a small pinch of salt. Cook, stirring occasionally, for 8 to 10 minutes, until the vegetables are very soft and turning light golden around the edges. This slow cooking brings out their sweetness and creates a rich base for the ragu.
Add the garlic and cook for 1 to 2 minutes more, stirring often, until fragrant but not browned.
Step 3: Brown the pork with fennel and spices
Add the ground pork to the pot. Sprinkle over the 1 1/2 teaspoons kosher salt, black pepper, crushed fennel seeds, and red pepper flakes (if using). Increase the heat to medium-high and cook, breaking the meat into small pieces with a wooden spoon or spatula.
Let the pork cook for 10 to 12 minutes, stirring occasionally, until it is no longer pink and has developed deep golden-brown, slightly crispy bits. Do not rush this step; browning equals flavor. If the pot starts to look dry or anything threatens to scorch, reduce the heat slightly.
Step 4: Add tomato paste and deglaze with wine
Once the pork is well browned, push it aside slightly and add the tomato paste to the center of the pot. Cook the paste for 2 to 3 minutes, stirring it into the pork and vegetables, until it darkens in color and smells sweet and concentrated. This cooks off raw, tinny flavors and deepens the sauce.
Pour in the white wine and stir, scraping up all the browned bits from the bottom of the pot. Let the wine simmer briskly for 3 to 5 minutes, until it has reduced by about half and no longer smells strongly alcoholic.
Step 5: Add tomatoes and gently simmer the ragu
Add the crushed tomatoes, chicken stock (or water), bay leaf, dried oregano, sugar (if using), and Parmesan rind (if using) to the pot. Stir well to combine and bring the mixture up to a gentle simmer over medium heat.
Once it is bubbling, reduce the heat to low or medium-low so that the sauce just barely simmers with an occasional lazy bubble. Partially cover the pot with a lid (leave it slightly ajar) and cook for 1 1/2 to 2 hours, stirring every 15 to 20 minutes. The ragu should slowly thicken and become silky; add a splash more stock or water if it ever looks too dry or begins to stick.
Step 6: Finish the ragu with milk and herbs
Near the end of the cooking time, taste the sauce and adjust with more salt and pepper as needed. Fish out the bay leaf and Parmesan rind and discard.
Stir in the milk or heavy cream and the chopped fresh parsley. Let the ragu simmer gently for another 5 minutes. The dairy will soften the acidity of the tomatoes and make the sauce velvety, with a beautiful brick-red color. If you prefer a looser sauce, add a bit more stock or water; for a thicker sauce, let it simmer uncovered a few minutes longer.
Step 7: Cook the pasta and bring it all together
Bring a large pot of water to a boil. Salt it generously (it should taste pleasantly salty), then add the pasta and cook until just al dente, according to package directions. Before draining, scoop out about 1 cup of the starchy pasta water and set aside.
Drain the pasta and return it to the pot or place it in a large warm bowl. Ladle in enough ragu to generously coat the noodles (about 2 to 3 cups to start). Add a splash of pasta water and toss vigorously for 1 to 2 minutes, until the sauce clings to the pasta and looks glossy. Add more sauce as needed.
Serve the pasta in warm bowls with extra spoonfuls of ragu on top. Shower with freshly grated Parmesan, a drizzle of good olive oil, a grind of black pepper, and a sprinkle of parsley. Enjoy immediately, preferably with crusty bread to mop up every last bit of sauce.
Pro Tips
- Do not rush the browning: Let the pork really take on color; those browned bits are where the deep, meaty flavor comes from.
- Toast the fennel seeds: Lightly toasting the crushed fennel seeds in the fat (after the vegetables, before the wine) makes their aroma even more pronounced. Just 30 to 60 seconds until fragrant.
- Adjust the texture at the end: If the ragu is too thick, loosen with a splash of stock or pasta water. If it is too thin, simmer uncovered for a few extra minutes.
- Choose a sturdy pasta shape: Wide ribbons like pappardelle or short shapes with ridges (rigatoni, mezze rigatoni) hold up best to this hearty sauce.
- Make it ahead: The flavor deepens after a night in the fridge, making this an excellent make-ahead dinner or meal-prep staple.
Variations
- Pork and sausage mix: Replace half of the ground pork with mild or hot Italian sausage (casings removed) for extra fennel and garlic notes.
- Mushroom boost: Add 1 cup finely chopped cremini mushrooms (or a handful of soaked, chopped dried porcini) along with the vegetables for a deeper, earthier flavor.
- Polenta or gnocchi instead of pasta: Serve the ragu over creamy polenta or pillowy gnocchi for an even cozier cold-weather dish.
Storage & Make-Ahead
Let the ragu cool to room temperature, then transfer to airtight containers. Refrigerate for up to 4 days or freeze for up to 3 months. The flavors actually improve after a day or two. Thaw overnight in the refrigerator if frozen, then reheat gently on the stovetop over low heat, adding a splash of water or stock if it has thickened too much.
Cook the pasta fresh just before serving for the best texture. If you have leftover pasta already mixed with sauce, store it in the fridge for up to 2 days and reheat with a splash of water in a covered pan over low heat, stirring occasionally.
Nutrition (per serving)
Approximate values for 1 of 6 servings (including pasta, sauce, and a modest amount of Parmesan): about 700 calories; 32 g protein; 30 g fat; 65 g carbohydrates; 4 g fiber; 9 g saturated fat; 1100 mg sodium. Actual values will vary based on pasta shape, exact cheese amount, and specific products used.

Leave a Reply