
Slowly simmered with tender vegetables, ground beef, milk, white wine, and tomatoes, this classic Bolognese sauce is rich, hearty, and exactly the sort of dinner that makes you want to linger around the table. Toss it with a big bowl of pasta, add some crusty bread on the side, and you have seriously comforting food.
There’s something especially satisfying about making Bolognese when you have a quiet afternoon at home. The vegetables soften on the stove, the beef slowly takes on the flavors of milk and wine, and then everything bubbles away with tomatoes until the sauce becomes thick and savory. It takes a little patience, but most of that time is simply spent letting the pot simmer.
And that slow cooking is really what makes this recipe special. By the time it’s ready, the sauce is wonderfully rich without feeling complicated or fussy. Make it for Sunday dinner, save the leftovers for a busy weeknight, or tuck some into the freezer for another day.
Why You’ll Love This Recipe
I love this Bolognese when I’m craving a pasta sauce that feels a little more special than an everyday meat sauce. It starts with onion, carrot, celery, and garlic, which cook until soft and give the sauce a flavorful foundation. Then comes the beef, followed by whole milk and dry white wine.
The best part comes next: the slow simmer. Once the tomatoes and chicken broth are in the pot, there isn’t much left to do. Let everything cook gently until the sauce becomes thick, rich, and deeply savory.
It’s also a wonderful recipe to make ahead. The sauce keeps for several days in the refrigerator and freezes well, so one afternoon of cooking can give you an easy homemade dinner later on.
Bolognese Sauce Ingredients
Here’s what each ingredient brings to this classic Bolognese:
- Olive Oil – for sautéing the vegetables and creating the flavorful base of the sauce.
- Yellow Onion – adds a gentle sweetness and savory depth as it slowly softens.
- Carrot – brings subtle natural sweetness that helps balance the tomatoes and savory beef.
- Celery – adds another layer of savory flavor to the vegetable base.
- Garlic – for that aromatic, garlicky flavor that works its way throughout the sauce.
- Lean Ground Beef – the heart of the Bolognese. Lean beef keeps the sauce hearty and meaty without making it overly greasy.
- Kosher Salt and Black Pepper – simple seasonings that bring out the flavors of the beef, vegetables, and tomatoes.
- Nutmeg – you only need a little! It adds a subtle warmth that works especially well with the beef and milk.
- Whole Milk – adds richness while helping create a softer, more rounded flavor in the meat sauce.
- Dry White Wine – adds brightness and depth, balancing the richer flavors in the Bolognese.
- Whole Peeled Tomatoes – form the tomato base of the sauce. They slowly break down during the long simmer, giving the Bolognese plenty of body.
- Low-Sodium Chicken Broth – adds moisture and savory flavor while the sauce slowly simmers and thickens.

Step-by-Step Instructions
Let’s make Bolognese!
First, cook the vegetables.
Pour 2 tablespoons olive oil into a Dutch oven or large pot and place over medium heat. Once the oil is shimmering, add 1 finely diced small yellow onion, 1 peeled and finely diced small carrot, 1 finely diced small celery stalk, and 3 minced garlic cloves. Cook for 8 to 10 minutes, stirring from time to time, until the vegetables have softened.
Next, add the beef.
Add 1 pound lean ground beef, 1 1/2 teaspoons kosher salt, 1/4 teaspoon black pepper, and 1/8 teaspoon ground nutmeg. Cook for 5 to 7 minutes, using your spoon to break the beef into smaller pieces as it cooks, until the meat is cooked through.
Add the milk, then the wine.
Pour in 1 cup whole milk. Continue cooking for 10 to 12 minutes, stirring occasionally, until the milk has evaporated. Add 1 cup dry white wine and cook for another 10 to 12 minutes, stirring occasionally, until the wine has also evaporated.
This part is worth taking your time with. Letting each liquid cook away before moving on helps build the rich flavor that makes the finished sauce so good.
Finally, let the sauce simmer.
Add 1 (28-ounce) can whole peeled tomatoes along with their juices, breaking the tomatoes into bite-size pieces with your hands as they go into the pot. Stir in 1 cup low-sodium chicken broth.
Bring the mixture to a simmer, then turn the heat down to low so the sauce maintains a very gentle simmer. Cook for about 1 1/2 hours, stirring occasionally. Use a wooden spoon to break apart any larger pieces of tomato as the sauce cooks. Continue simmering until the sauce has thickened and the flavors have melded together.
Now all that’s left to do is cook your favorite pasta and eat!
Expert Tips
Take your time with the vegetables. Let the onion, carrot, celery, and garlic soften for the full 8 to 10 minutes. They form the base of the sauce, so you want them tender before adding the beef.
Keep breaking up the beef. Smaller pieces of meat blend more naturally into the sauce and give every forkful a little bit of everything.
Let the milk cook away completely. After you add it, give it the full 10 to 12 minutes to evaporate before pouring in the wine. Do the same with the wine before moving on to the tomatoes.
Keep the simmer gentle. Once everything is in the pot, low and slow is the way to go. You want a quiet simmer rather than a vigorous boil.
Don’t rush the last 1 1/2 hours. This is when the sauce really comes together. The tomatoes break down, the sauce thickens, and all those individual flavors turn into one rich Bolognese.
Recipe Variations
This Bolognese is delicious just as it is, but you can have fun with how you use the finished sauce.
Try tossing it with wide ribbons of pappardelle or tagliatelle, or choose a sturdy shape like rigatoni that can catch plenty of that rich meat sauce. It’s also wonderful layered into lasagna or spooned into a baked pasta dish.
And pasta isn’t your only option! Spoon warm Bolognese over creamy polenta or roasted spaghetti squash for a completely different dinner using the same batch of sauce.
Storage & Reheating
One of my favorite things about making a big pot of Bolognese is knowing there’s another good dinner waiting in the fridge.
Let leftovers cool, transfer them to an airtight container, and refrigerate for up to 4 days. For longer storage, freeze the sauce in an airtight container for up to 3 months.
When you’re ready to eat it again, gently warm the sauce in a saucepan, stirring occasionally, until it’s hot throughout. If frozen, thaw it in the refrigerator first and then reheat.
Serving Suggestions
A steaming bowl of pasta is the natural place to start. Toss the Bolognese with pappardelle, tagliatelle, rigatoni, or whatever pasta you love, making sure the sauce gets into every fold and curve.
If I were making this for a cozy dinner, I’d keep everything else simple. Add a crisp green salad or some roasted vegetables and put warm crusty bread on the table for scooping up the last bits of sauce.
You can also serve the Bolognese over creamy polenta or roasted spaghetti squash, or use it to make lasagna or baked ziti. However you serve it, this is the kind of hearty sauce that can easily become the center of the meal.
Recipe FAQs
1. Why do you add milk to Bolognese?
The whole milk adds richness and helps give the sauce a softer, more balanced flavor. Make sure to let the milk cook until it has evaporated before adding the white wine. It’s an easy step, but don’t rush it!
2. Do I really need to simmer Bolognese for 1 1/2 hours?
Yes, I recommend giving it the full simmer time. This is where the sauce thickens and all those delicious flavors really come together. Keep it at a very gentle simmer and give it a stir every once in a while.
3. How do I know when my Bolognese is done?
The sauce should be thick and rich, and the tomatoes should be nicely broken down. If it still looks thin or watery, let it simmer a little longer. You’re looking for a hearty sauce that easily coats the pasta.
4. Can I make Bolognese ahead of time?
Yes! This is a great recipe to make ahead. Let the sauce cool and store it in an airtight container in the refrigerator for up to 4 days. When you’re ready to serve, simply reheat it gently on the stove.
5. What pasta goes best with Bolognese?
Pappardelle is one of my favorites because those wide noodles hold onto the hearty meat sauce so well. Tagliatelle and rigatoni are delicious too, but you can definitely use whatever pasta you have on hand.


Classic Bolognese Sauce
Ingredients
- 2 tbsp olive oil
- 1 small yellow onion, finely diced (1 cup)
- 1 small carrot, peeled and finely diced (1/3 cup)
- 1 small stalk celery, finely diced (1/4 cup)
- 3 cloves garlic, minced
- 1 pound pound lean ground beef
- 1 1/2 tsp kosher salt, plus more as needed
- 1/4 tsp freshly ground black pepper
- 1/8 tsp teaspoon ground or freshly grated nutmeg
- 1 cup whole milk
- 1 cup dry white wine
- 1 can (28-ounce) whole peeled tomatoes
- 1 cup low-sodium chicken broth
Instructions
- Pour 2 tablespoons olive oil into a Dutch oven or large pot and place over medium heat. Once the oil is shimmering, add 1 finely diced small yellow onion, 1 peeled and finely diced small carrot, 1 finely diced small celery stalk, and 3 minced garlic cloves. Cook for 8 to 10 minutes, stirring from time to time, until the vegetables have softened.
- Add 1 pound lean ground beef, 1 1/2 teaspoons kosher salt, 1/4 teaspoon black pepper, and 1/8 teaspoon ground nutmeg. Cook for 5 to 7 minutes, using your spoon to break the beef into smaller pieces as it cooks, until the meat is cooked through.
- Pour in 1 cup whole milk. Continue cooking for 10 to 12 minutes, stirring occasionally, until the milk has evaporated. Add 1 cup dry white wine and cook for another 10 to 12 minutes, stirring occasionally, until the wine has also evaporated.
- Add 1 (28-ounce) can whole peeled tomatoes along with their juices, breaking the tomatoes into bite-size pieces with your hands as they go into the pot. Stir in 1 cup low-sodium chicken broth.
- Bring the mixture to a simmer, then turn the heat down to low so the sauce maintains a very gentle simmer. Cook for about 1 1/2 hours, stirring occasionally. Use a wooden spoon to break apart any larger pieces of tomato as the sauce cooks. Continue simmering until the sauce has thickened and the flavors have melded together.
Notes
Recipe Notes
-
- Ground beef: Lean ground beef works best here, ideally around 85% lean, so the sauce stays rich without becoming too greasy.
- Milk: Whole milk gives the Bolognese the best richness and helps balance the tomatoes and wine. Let it cook until evaporated before adding the wine.
- Wine: Use a dry white wine that you enjoy drinking. Make sure the wine has cooked down before adding the tomatoes and broth.
- Tomatoes: Break up the whole peeled tomatoes as you add them, then continue breaking down any larger pieces with a wooden spoon while the sauce simmers.
- Simmering: Keep the heat low during the final 1 1/2 hours. A slow, gentle simmer gives the sauce time to thicken and develop its rich flavor.
- Make ahead: This is a great sauce to prepare in advance. The flavor holds up beautifully for an easy pasta dinner later in the week.
- Storage: Refrigerate leftovers in an airtight container for up to 4 days or freeze for up to 3 months.
Nutrition
Calories: 470kcal | Carbohydrates: 19g | Protein: 27g | Fat: 28g | Saturated Fat: 10g | Cholesterol: 85mg | Sodium: 1150mg | Potassium: 920mg | Fiber: 4g | Sugar: 11g | Vitamin A: 3000IU | Vitamin C: 22mg | Calcium: 150mg | Iron: 4mg Nutrition is an estimate per serving based on 4 servings and can vary depending on the specific ground beef, wine, broth, and canned tomatoes used.
