Classic Bolognese with Ground Beef and Pork

There are a lot of ways to make Bolognese, but this one is my favorite. This is a classic version with ground beef, pork, milk, and a long, slow simmer. You’ll need a heavy-duty lidded pot.

Bowl of pasta topped with Bolognese meat sauce.

The white wine and milk mellow the tomatoes, the Parmesan rind adds so much flavor, and the long simmer brings it all together into a rich, silky sauce. It’s delicious and one of the primary reasons I can tomatoes all summer. I always make this in my biggest cast iron skillet and don’t have problems. (In case you are worried about the acidity reacting with the iron, etc.) Sometimes I do re-season afterwards. If you have enameled cast iron, that would be perfect.

What You’ll Need

I always make this when I finish a parmesan wedge so I can use the rind. If you don’t have one, that’s okay, but add even more parmesan when you serve it.

Ingredients for Bolognese sauce arranged on a wooden table.
  • 2 tablespoons olive oil
  • 1 medium yellow onion, finely diced
  • 2 medium carrots, finely diced
  • 2 celery stalks, finely diced
  • 1 pound ground beef
  • ½ pound ground pork (I prefer using both meats but you can substitute more beef if needed)
  • 2 tablespoons tomato paste
  • ½ cup dry white wine (chicken broth works if you don’t want to use wine)
  • 1 cup whole milk (balances the acidity—2% works if that’s what you have)
  • 1 (28-ounce) can crushed tomatoes
  • 1–2 bay leaves
  • 1 Parmesan rind (optional but adds great flavor)
  • Pinch of nutmeg (just a little…too much can overpower)
  • 1 teaspoon kosher salt
  • ½ teaspoon black pepper, maybe a little more to taste

Doubling: This recipe doubles and freezes very well, but not in a skillet. Use a bigger pot if you want to double it. Tap the 2x button on the recipe at the end of the post and it will do all the math for you.

How to Make

Step 1: Cook the vegetables

Start by heating the olive oil in a large pan. Add your onion, carrots, and celery, and let them soften slowly over medium heat. This combo is called a soffritto in Italian cooking, and it’s the foundation of the sauce.

FREE FOR SUBSCRIBERS

Fall Harvest Cookbook

Subscribe (free!) to my newsletter to receive this PDF + dozens of others in my printable library. You’ll also get emails you’ll truly love, with a weekly meal and so much more.

Chopped vegetables in a skillet before and after cooking.

Don’t rush this step! 5 to 7 minutes is just about right. You want them tender and fragrant, but not browned.

Step 2: Brown the meat

Turn the heat up a bit and add the ground beef and pork. Break it apart with your spoon and let it cook until it’s no longer pink. A little browning on the bottom of the pan is a good thing; it builds flavor.

Ground beef and pork added to vegetables in skillet, before and after cooking.

If the meat gives off a lot of grease, just spoon some out so the sauce doesn’t end up too heavy.

Step 3: Add the tomato paste and wine

Stir in the tomato paste and give it a minute or two to cook. Then pour in the wine, scraping the bottom of the pan as you stir. This picks up all those browned bits from the meat (that’s flavor gold right there).

Tomato paste and white wine added to browned meat mixture.

Let it bubble away until it’s reduced by about half.

Step 4: Stir in the milk

This is the part that surprises a lot of people. Yes, there’s always milk in Bolognese! It’s traditional, and it makes a huge difference. The dairy softens the acidity of the tomatoes and gives the sauce a subtle richness.

Milk simmering with meat and vegetables in skillet.

Let it simmer until the milk is mostly absorbed.

Step 5: Build the sauce

Now add the crushed tomatoes, bay leaves, Parmesan rind if you have one, nutmeg, salt, and pepper. Give it a good stir. 

Crushed tomatoes, Parmesan rind, and seasonings added to sauce.

The Parmesan rind will just sit in the sauce as it simmers, slowly releasing flavor (you’ll remove it at the end).

Step 6: The long simmer

Cover the pan and reduce the heat so it’s just barely bubbling. Let it go for about an hour, stirring now and then. This slow simmer is what develops that deep, layered flavor. There’s no shortcut here. Be patient!

Step 7: Thicken and finish

After an hour, take the lid off and let the sauce cook uncovered for another 15 to 20 minutes. This thickens it up so it clings to the pasta. Before serving, don’t forget to remove the bay leaves and Parmesan rind.

Finished Bolognese sauce simmering in skillet with spoon.

Taste and adjust the seasoning one last time. You may want a little more salt.

Storage Instructions

Store any leftovers in an airtight container in the fridge for up to 4 days.

This sauce also freezes very well. Let it cool completely, then portion into freezer-safe containers or bags and freeze for up to 3 months. Reheat gently on the stovetop, adding a splash of water or broth if it’s too thick.

Serving Suggestions

This sauce is best with sturdy, wide pasta shapes. Tagliatelle and pappardelle are the traditional choices, but fettuccine or rigatoni (my favorite) work well too. A sprinkle of freshly grated Parmesan on top is a must.

bowl of plated pasta.

I like to serve it with a simple green salad and plenty of homemade crusty bread on the side 

Troubleshooting

Why is my sauce watery?

It either needs more time simmering uncovered or your heat was too low—turn it up just enough so it gently bubbles.

Why does my sauce taste bland?

Check your salt. A pinch of extra salt (and a little more Parmesan at the end) will fix it right up.

Why is there so much grease on top?

That’s from fattier meat. Just spoon off the excess once the meat browns.

Printable Recipe

close up of sauce over pasta.

Classic Bolognese Sauce

Katie Shaw
A rich, slow-simmered Italian meat sauce made with beef, pork, vegetables, and a touch of milk. Perfect over pasta for a cozy family dinner.
No ratings yet
Prep Time 10 minutes
Cook Time 1 hour 30 minutes
Total Time 1 hour 40 minutes

Equipment

  • 1 12-inch cast iron pan or Dutch oven with a lid
  • 1 Wooden spoon

Ingredients
  

  • 2 tablespoons olive oil
  • 1 medium yellow onion, finely diced
  • 2 medium carrots, finely diced
  • 2 stalks celery, finely diced
  • 1 pound ground beef
  • ½ pound ground pork
  • 2 tablespoons tomato paste
  • ½ cup dry white wine
  • 1 cup whole milk
  • 28 ounces crushed tomatoes 1 large can
  • 1-2 bay leaves
  • 1 Parmesan rind optional, adds flavor
  • 1 pinch nutmeg
  • 1 teaspoon kosher salt or to taste
  • ½ teaspoon black pepper or to taste

Save This Recipe

I’ll send you a link so you can find it later.

You'll join my email list which you will love. And if you don't, unsubscribe in one click. ❤️

Instructions
 

  • Cook veggies. Heat the olive oil over medium heat. Add onion, carrots, and celery; cook 5–7 minutes until softened.
  • Brown meat. Increase heat to medium-high. Add beef and pork; cook 8–10 minutes until browned, breaking up meat. Drain extra grease if needed.
  • Add tomato paste and wine. Stir in tomato paste and cook 1–2 minutes. Pour in wine, scraping the pan; simmer 2–3 minutes until reduced by half.
  • Add milk. Lower heat. Stir in milk; cook about 5 minutes until mostly absorbed.
  • Add crushed tomatoes and seasoning. Add tomatoes, bay leaves, Parmesan rind, nutmeg, salt, and pepper. Stir well.
  • Simmer. Cover and simmer gently on low for 1 hour, stirring occasionally.
  • Thicken Uncover and simmer 15–20 minutes more until thickened. Remove bay leaves and Parmesan rind before serving.

Notes

Serve over tagliatelle, pappardelle, or your favorite pasta. This sauce also freezes well for up to 3 months.
Nutritional info is based on 4 servings and does not include pasta.
I recommend buying a white wine you’d like to drink the rest of because you won’t use a lot of it. 

Nutrition

Calories: 614kcalCarbohydrates: 26gProtein: 37gFat: 39gSaturated Fat: 13gPolyunsaturated Fat: 3gMonounsaturated Fat: 18gTrans Fat: 1gCholesterol: 125mgSodium: 1076mgPotassium: 1467mgFiber: 6gSugar: 16gVitamin A: 5840IUVitamin C: 25mgCalcium: 200mgIron: 6mg
Did you make this?Let me know how it went!

Love,

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating