
Bolognese Sauce
Bolognese sauce is made by browning a mixture of ground beef and pork with soffritto, then simmering slowly with tomatoes, wine, and milk for at least 2 hours until the sauce is thick and deeply flavored. The long cook time is not optional — it's the entire point.
Bolognese is a useful reminder that “more ingredients” and “more flavor” are not the same thing. The depth here comes from sequence. Onion, carrot, and celery soften first in butter and olive oil. Beef and pork brown until their moisture cooks away. Tomato paste gets a couple of minutes against the hot pot. White wine goes in and reduces. Then whole milk and nutmeg join the meat before the tomatoes, broth, bay leaves, and optional Parmesan rind ever arrive.
That order is why this sauce tastes layered instead of merely tomato-heavy. Once everything is in the pot, turn the heat low and let it barely bubble for 2 to 2½ hours, stirring occasionally. This is not a sauce that benefits from boiling like it is trying to escape. The long, gentle simmer reduces it into something thick and glossy that clings to pasta instead of collecting underneath it.
The final move matters too: toss al dente tagliatelle, pappardelle, or rigatoni directly with the sauce for a minute or two, using reserved pasta water as needed. Sauce and pasta should finish together, not meet for the first time on the plate like two people assigned the same table at a wedding. It takes nearly three hours, but most of that time is the pot quietly proving that patience is an ingredient whether we like it or not.
Ingredients
- 2 tablespoons olive oil
- 2 tablespoons unsalted butter
- 1 medium yellow onion, finely diced
- 2 medium carrots, finely diced
- 2 stalks celery, finely diced
- 4 cloves garlic, minced
- 3/4 lb (340g) ground beef (80/20)
- 3/4 lb (340g) ground pork
- 1 teaspoon kosher salt, plus more to taste
- 1/2 teaspoon black pepper
- 1/4 teaspoon freshly grated nutmeg
- 3/4 cup dry white wine
- 3/4 cup whole milk
- 1 can (28 oz) whole San Marzano tomatoes, crushed by hand
- 1 cup low-sodium beef broth
- 2 tablespoons tomato paste
- 2 bay leaves
- 1 Parmesan rind (optional but extremely worth it)
- 1 lb tagliatelle, pappardelle, or rigatoni, for serving
- Freshly grated Parmesan, for serving
Instructions
- 1Heat the olive oil and butter together in a large heavy-bottomed Dutch oven or deep skillet over medium heat. Once the butter has melted and the foam subsides, add the diced onion, carrot, and celery. Cook, stirring occasionally, for 8 to 10 minutes until softened and the onion is translucent. Add the garlic and cook for another 1 minute.
- 2Increase the heat to medium-high. Add the ground beef and ground pork in small crumbles. Season with 1 teaspoon kosher salt and 1/2 teaspoon black pepper. Cook, breaking up the meat with a wooden spoon, for 8 to 10 minutes until the meat is browned and most of the liquid has evaporated. Do not rush this step — properly browned meat makes a significant difference in the final flavor.
- 3Add the tomato paste and stir to coat the meat. Cook for 2 minutes, letting it caramelize slightly against the bottom of the pot.
- 4Pour in the white wine and stir, scraping up any browned bits from the bottom. Cook over medium-high heat for 3 to 4 minutes until the wine has mostly evaporated.
- 5Pour in the whole milk and stir to combine. Add the freshly grated nutmeg. Reduce heat to medium and simmer for 5 to 6 minutes until the milk has absorbed into the meat.
- 6Add the crushed San Marzano tomatoes, beef broth, bay leaves, and Parmesan rind if using. Stir everything together and bring to a gentle simmer.
- 7Reduce heat to low. The sauce should be at a very low, occasional bubble — not a rolling simmer. Cook uncovered for 2 to 2.5 hours, stirring every 20 to 30 minutes. If the sauce looks too dry before it's done, add a splash of broth or water. The finished sauce should be thick, glossy, and barely saucy — it clings to pasta rather than pooling around it.
- 8Remove and discard the bay leaves and Parmesan rind. Taste and adjust salt. The sauce is done when it smells like it has been cooking for two and a half hours, which is exactly how long it has been.
- 9Cook your pasta in heavily salted boiling water to al dente according to package directions. Reserve 1 cup of pasta water before draining. Add pasta directly to the pot with the bolognese and toss over medium heat for 1 to 2 minutes, adding splashes of pasta water as needed to bring it together. Cook ground meat until it reaches 160°F on an instant-read thermometer.
- 10Serve immediately with freshly grated Parmesan.
Nutrition Information
Estimated per serving: 1 of 6 servings.
Estimated from the ingredients and quantities in this recipe using standard food-composition values. Brand choices, trimming, cooking loss, optional ingredients, and actual portion size can change the numbers. How we calculate nutrition estimates.
Pro Tips
- Cut the soffritto vegetables as small and evenly as you can manage. They should nearly disappear into the sauce by the end — their job is flavor, not texture. I used a food processor for the first year I made this, which was a great decision I told no one about.
- The Parmesan rind is not optional in spirit even if it is optional in fact. Drop it in with the tomatoes and pull it out at the end. It adds a low, savory depth that is hard to explain and easy to miss if you skip it.
- Do not crank the heat to speed up the simmer. A bolognese cooked at medium instead of low will taste like a hurried version of itself, which it will be, and the sauce knows the difference.
Substitutions
Storage Instructions
Store leftover bolognese in an airtight container in the refrigerator for up to 4 days. Reheat gently on the stovetop over low heat, adding a splash of water or broth to loosen. Freeze in portions for up to 3 months — the sauce improves after freezing and reheating, which is one of the more satisfying things about making it.
Make Ahead
Bolognese is one of the best make-ahead sauces in existence. Make it up to 3 days in advance and refrigerate — the flavor deepens significantly overnight. You can also make a double batch and freeze half in zip-lock bags laid flat. Reheat from frozen in a saucepan over low heat with a splash of broth.
Make It a Meal
Pair this recipe with a side, bread, and something sweet from the FAFO Kitchen.
Finish With Dessert
Try this next
Hummingbird Cake
View recipe →








