Sauces & Condiments
This Bolognese sauce recipe delivers the rich, slow-simmered depth that makes Italian cooking legendary—perfected with Batali’s signature balance of meaty umami, wine brightness, and fresh herbs. The secret lies in hours of gentle simmering, where ground beef and pork transform into tender, flavor-packed crumbles while tomatoes caramelize into a velvety base. I’ve tested this recipe dozens of times, and the difference between a quick version and this slow-cooked masterpiece is night and day.
The foundation starts with a deep, aromatic soffritto—onions, carrots, and celery cooked until sweet and translucent—before adding wine to deglaze and build layers of flavor. Ground meat browns thoroughly, releasing juices that meld with crushed tomatoes, broth, and a touch of milk for richness.
Fresh herbs like basil and parsley brighten the sauce at the end, ensuring it’s vibrant, not heavy.
What you’ll end up with is a sauce so deeply flavorful it elevates any dish—think al dente tagliatelle, lasagna layers, or even braised meats. The texture is silky yet substantial, with meat that’s tender enough to melt in your mouth.
Best of all, it tastes even better the next day, making it perfect for meal prep or freezer storage.
For those short on time, I’ll share a slow-cooker adaptation that delivers similar results with minimal effort. But trust me, the hours spent simmering are worth every minute—this is the kind of sauce that turns ordinary meals into something extraordinary.
Ingredients for bolognese sauce recipe batali
Pantry staples meet Italian tradition—this sauce builds flavor layer by layer.
| Ingredient | Amount | Notes |
|---|---|---|
| Extra-Virgin Olive Oil 🫒 | ½ cup | High-quality, fruity variety |
| Onion 🧅 | 2 whole | Yellow or white, finely chopped |
| Carrot 🥕 | 2 whole | Medium, finely diced |
| Celery Stalks 🌿 | 2 whole | Finely chopped, leafy parts trimmed |
| Garlic Cloves 🧄 | 4 cloves | Minced, not pre-minced jarred |
| Ground Beef 🥩 | 1 ½ lb | 80/20 fat ratio preferred |
| Ground Pork 🐖 | ½ lb | Finely ground, not coarse |
| Canned San Marzano Tomatoes 🍅 | 28 oz | Crushed by hand, no salt added |
| Dry Red Wine 🍷 | ½ cup | Bold, like Cabernet Sauvignon |
| Whole Milk 🥛 | ¼ cup | Full-fat for richness |
| Beef Broth 💧 | 1 ½ cups | Homemade or quality low-sodium |
| Fresh Basil Leaves 🌿 | ¼ cup | Packed, stems removed |
| Fresh Parsley 🌿 | ⅛ cup | Flat-leaf, finely chopped |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
The soffritto is where magic happens. Yellow onions and celery from the grocery store's fresh produce section work fine, but Trader Joe's has the best pre-chopped mix for convenience. Carrots? Baby carrots are great if you're short on time, but whole carrots add more natural sweetness. The garlic should be fresh—no pre-minced jarred stuff. For the meat, 80/20 ground beef gives you that perfect fat-to-lean ratio for juicy results. I grab mine in the meat department's pre-ground section, but if you're feeling fancy, ask the butcher to grind it fresh for you. The pork adds depth—don't skip it if you can find it at your local market.
No red wine? Beef broth with a splash of balsamic vinegar works in a pinch, but trust me, the wine makes all the difference. The San Marzano tomatoes are non-negotiable for authentic flavor—look for the 28 oz cans at Italian markets or well-stocked grocery stores. Fresh basil is ideal, but dried works at one-third the amount if you're in a bind. The milk might seem odd, but it adds incredible richness—whole milk only, none of that skim stuff. For the broth, homemade is best, but even the low-sodium store-bought stuff works if you dilute it with water to cut the salt. The beef broth should be rich but not salty—you can always add more salt at the end.
This sauce tastes even better the next day—plan ahead. Store it in an airtight container in the fridge for up to 5 days, or freeze portions for 3 months. I like to portion it into ziplock bags with a bit of space at the top so it doesn't freeze solid. When reheating, start with a splash of water or broth to loosen it up. The herbs should be added fresh at the very end—don't cook them with the sauce or they'll turn bitter. If you're making this ahead for a party, keep the fresh herbs separate until serving.
Why You'll Love This Recipe
- Sofa-to-Stove Simple: I swear by this for nights when I’m too tired to even think. Just dice the onion, carrot, and celery—no fancy knife skills needed—and let the olive oil do the work while I stir. That slow simmer? It’s basically hands-off magic.
- Garlic-Glazed Magic: Here’s what sold me—the way the garlic cloves caramelize just enough to coat every bite. It’s rich but not heavy, with that bright olive oil finish that makes you want to lick the spoon. (Yes, even on a Tuesday night.)
- Pasta Party Starter: This sauce doubles as my secret weapon for potlucks or date nights. Toss it with spaghetti for a classic, or pile it into a casserole with zucchini—suddenly, you’ve got a crowd-pleaser without the stress.
- Fridge Goldmine: Between us, this sauce only gets better after day two. I make a big batch on Sundays, freeze half, and still have leftovers for lunch. It’s my budget-friendly, time-saving hero when I’d rather not cook.
Step-by-step instructions for slow-simmered Bolognese sauce
Here's how to build rich, layered flavor through patience and precision—just like Batali's approach.
Sauté the Vegetable Base Until Translucent
Heat the 0.5 cup extra-virgin olive oil in a heavy Dutch oven over medium-low heat. Add the finely chopped onion, diced carrot, and chopped celery stalks, stirring occasionally. Cook for 10-12 minutes until the vegetables soften and turn translucent, releasing their natural sweetness.
I like to press down gently with a wooden spoon during the first 5 minutes—this helps break down the vegetables faster while preventing burning. The goal is to create a flavorful base that will infuse the entire sauce. If the oil starts to smoke, reduce the heat slightly and give it another 2-3 minutes to finish cooking.
Add Garlic and Brown the Meat Mixture
Stir in the minced garlic cloves and cook for 30 seconds until fragrant—don't let it brown or it'll turn bitter. Push the vegetables to one side of the pot and add the 1.5 lb ground beef and 0.5 lb ground pork to the empty space. Use a wooden spoon to break up the meat as it browns.
Cook the meat mixture for 8-10 minutes, stirring occasionally, until it loses its raw color and develops a deep brown crust. The pork will release its fat, which helps create a silky texture in the finished sauce. Once the meat is fully browned, use a wooden spoon to scrape up any browned bits from the bottom of the pot—these contain concentrated flavor that will deepen your sauce.
Deglaze with Wine and Simmer the Tomatoes
Pour in the 0.5 cup dry red wine and stir vigorously, scraping up all the browned bits from the bottom of the pot. Let the wine simmer for 3-4 minutes until it reduces by half and the alcohol smell dissipates completely. This step is crucial—it removes the harshness of the wine and builds complexity in the sauce.
Add the 28 oz crushed San Marzano tomatoes and stir to combine. Bring the mixture to a gentle simmer, then reduce the heat to low. Partially cover the pot and let it cook for 45-60 minutes, stirring occasionally, until the sauce thickens and the vegetables are completely tender. The sauce should coat the back of a spoon and have a rich, deep color.
Finish with Milk and Fresh Herbs
Stir in the 0.25 cup whole milk and 1.5 cups beef broth, then bring the sauce back to a gentle simmer. Cook uncovered for another 15-20 minutes, stirring occasionally, until the sauce has thickened slightly and the flavors have melded together. The milk adds a velvety texture and balances the acidity of the tomatoes.
Remove the pot from heat and stir in the 0.25 cup fresh basil leaves and 0.125 cup fresh parsley. Let the sauce sit for 5 minutes to infuse with the herb flavors. Season to taste with the 1.5 tsp salt and 0.5 tsp ground black pepper. The sauce should be rich, slightly sweet, and deeply aromatic—ready to pair with al dente pasta or crusty bread.
Pro Tips For Making Bolognese Sauce Recipe Batali
- SWEAT THE VEGETABLES LOW: The first 20 minutes of this sauce hinge on the soffritto—don’t rush it. Cook the onions, carrots, and celery over medium-low heat until they’re so tender they practically fall apart when poked with a spoon. I used to crank the heat and end up with a mushy, gray mess that tasted like boiled wallpaper.
- MINCE THAT GARLIC: Batali’s recipe calls for garlic, but if you’re using cloves, don’t just chop them—smash them first with the flat of your knife. This releases more flavor without burning, and you’ll get that deep, nutty aroma instead of bitter, charred bits. (Yes, even if you’re impatient like me.)
- SALT THE POT BEFORE MEAT: Add a generous pinch of salt to the pot before browning your ground meat—it’ll help render fat more evenly and season the meat as it cooks. I learned this the hard way after tasting bland, greasy bolognese that needed a whole extra pinch of salt at the end. Trust me, it’s worth the 10 seconds.
- STIR THE SAUCE OFTEN: Once the meat is cooked through and you’re adding tomatoes, keep stirring every 2-3 minutes for the first 10 minutes. This prevents scorching and helps the flavors meld faster. I skip this when I’m distracted, and the sauce ends up with a burnt spot that ruins the whole batch—so don’t be lazy.
Common mistakes when making this dish
Overcooking the Meat
The most common mistake is browning the meat too aggressively, which turns it tough and dry. I’ve seen people crank the heat high to speed things up, but this burns the edges before the center cooks through.
Instead, use medium-low heat and break up the meat with a wooden spoon frequently. The goal is to render fat and develop flavor, not char the meat. 🌡️
Pro tip: If your meat starts to look dry, add 1-2 tablespoons of beef broth to deglaze and keep it moist while it browns. The sauce will still be rich, but the meat will stay tender and juicy.
Skipping the Wine Reduction
Many recipes call for wine, but people often pour it in and immediately add tomatoes without letting it reduce. This leaves the sauce with a harsh, boozy taste. Always let the wine simmer for 3-4 minutes until it’s reduced by half and the alcohol smell is gone.
This step concentrates the flavor and removes the raw alcohol bite. 🍷
If you’re in a rush, substitute with ½ cup beef broth + 1 tablespoon balsamic vinegar, but the wine’s depth is unmatched. The reduction also helps break down the meat’s proteins, making the sauce silky.
Ignoring the Milk Step
Some recipes omit the milk entirely, but it’s essential for balancing acidity and adding richness. Without it, the sauce can taste sharp or one-dimensional. Stir in the ¼ cup whole milk in the final 15-20 minutes of cooking—this is when it works its magic. 🥛
Never add the milk at the beginning; it’ll curdle from the heat. If you’re avoiding dairy, use ¼ cup heavy cream instead, but the texture will be slightly lighter. The milk also helps emulsify the sauce, giving it that velvety consistency.
Under-Simmering the Sauce
Rushing the simmering time is a surefire way to end up with a thin, watery sauce. The magic happens during the 1-2 hour low-and-slow cook, where flavors meld and the meat tenderizes. Skipping this step leaves the sauce flat and underdeveloped. ⏱️
If you’re short on time, use a slow cooker on low for 6-8 hours or an Instant Pot on high pressure for 45 minutes. But for the best results, stick to the stovetop method—patience pays off with layers of flavor you can’t replicate otherwise.
Adding Herbs Too Early
Fresh herbs like basil and parsley should only be added at the very end, or they’ll turn bitter and lose their bright flavor. I’ve seen people toss them in with the tomatoes, and the result is a sad, dull sauce.
Always stir them in during the final 5 minutes off heat. 🌿
If you’re using dried herbs, reduce the amount to ⅓ of fresh and add them with the tomatoes. But fresh is always better—it’s worth grabbing a bunch from the market or growing your own for this recipe.
Not Tasting as You Go
Many cooks wait until the very end to season, but Bolognese sauce needs constant adjustments. Taste after the wine reduces, after adding tomatoes, and again before serving. Season with salt and pepper gradually—you can always add more, but you can’t take it out. 🧂
I like to taste after the milk is added, too, because it can mute the flavors. If the sauce tastes bland, a splash of fish sauce (½ teaspoon)** or a pinch of sugar can brighten it up. Trust your palate—this sauce should be rich, balanced, and deeply satisfying.
Nutrition facts
Frequently asked questions
Why does this Bolognese sauce need such a long cooking time?
The slow simmering is essential for developing deep, complex flavors. Over 2-3 hours on low heat, the meat tenderizes completely while the vegetables break down into a sweet, aromatic base. This method also allows the wine to fully integrate and the tomatoes to caramelize, creating that signature rich, velvety texture.
Can I make this sauce in a slow cooker or Instant Pot?
For a slow cooker, combine all ingredients (except fresh herbs) and cook on low for 6-8 hours or high for 4-5 hours. For an Instant Pot, sauté the vegetables and meat first, then add remaining ingredients and pressure cook on high for 45 minutes. The Instant Pot version will be slightly thicker—just add a splash of broth if needed.
What's the best way to store leftover Bolognese sauce?
Store in an airtight container in the fridge for up to 5 days or freeze for 3 months. For freezing, portion into ziplock bags with space at the top to prevent ice crystals. When reheating, add a splash of water or broth to restore the silky texture. The flavor actually improves after 24 hours!
Can I substitute the ground pork with another type of meat?
Yes, but pork adds unique fat and flavor. For a vegetarian version, use mushrooms or lentils (½ lb each) instead of meat. If substituting beef only, add ½ cup beef broth to maintain moisture. The pork's fat content helps create that signature rich mouthfeel in traditional recipes.
How do I know when the sauce is ready?
The sauce is done when it coats the back of a spoon smoothly and the vegetables are completely tender. The meat should be fully cooked (no pink) and the sauce should have a deep, aromatic smell. It should be rich but not overly thick—if it's too thick, add 1-2 tablespoons of broth to adjust.
