When we commit to a Whole30, we always look for ways to enjoy familiar comfort foods without breaking the rules — and this Bolognese is one of our go-to dinners. It’s rich, slow-simmered, and full of classic Italian flavor, yet adapted to fit a Whole30 plan. I love serving mine over spiralized zucchini (zoodles), while my husband and kids enjoy theirs with whole wheat pasta. That way one pot makes the whole family happy without preparing separate meals. The sauce develops deep, layered flavor from sautéed vegetables, pancetta, and a long, gentle simmer that reduces the tomatoes into a thick, velvety sauce.

Whole30 Bolognese Sauce
2016-08-16 12:24:59

Serves 8
A Whole30-friendly take on classic Italian Bolognese: slow-simmered, rich, and perfect over spiralized vegetables or pasta for non-Whole30 family members.
Prep Time
15 min
Cook Time
2 hr
Total Time
2 hr 15 min
Ingredients
- 4 oz thinly sliced pancetta, diced
- 1/2 lb ground veal (or substitute an additional 1.5 lb ground beef if unavailable)
- 1 lb ground beef
- 1 carrot, finely diced
- 1 stalk celery, finely diced
- 1 small yellow onion, finely diced
- 2 cloves garlic, minced
- 2 tbsp olive oil
- 1/4 tsp dried thyme
- 1 bay leaf
- 32 oz can San Marzano whole tomatoes
- 15 oz can tomato sauce
- 1 cup chicken broth
- Salt and pepper, to taste
Instructions
- Heat 2 tablespoons olive oil in a Dutch oven or a large, deep skillet over medium-high heat.
- Add the diced pancetta and cook until it is slightly crisp and the fat has rendered, about 3–4 minutes.
- Stir in the diced onion, carrot, and celery. Sauté until the vegetables are very tender and just starting to brown at the edges, roughly 8 minutes. This builds sweetness and depth in the sauce.
- Add the ground veal and ground beef. Break up the meat with the back of a spoon and brown until no longer pink, about 7 minutes. Season with salt and pepper while the meat cooks.
- Add the minced garlic and cook for about 2 minutes, stirring, until fragrant—take care not to burn it.
- Pour in the whole San Marzano tomatoes with their juices. Use the back of your spoon to press and break the tomatoes as you add them so they begin to integrate into the meat and vegetables. Add the cup of chicken broth at this stage.
- Stir in the tomato sauce, dried thyme, and bay leaf. Taste and add another pinch of salt and pepper if desired. Bring the mixture to a boil, then reduce the heat to low so the sauce maintains a gentle simmer. Cover and cook for 1 hour.
- After one hour, remove the lid and continue simmering uncovered for another hour. Keep the sauce at a steady simmer (adjust heat to medium-low on some stovetops) and stir occasionally to prevent sticking. During this time the sauce will thicken and the flavors will concentrate.
- When the sauce is ready, remove and discard the bay leaf. Taste and adjust seasoning with salt and pepper as needed. Serve hot over spiralized zucchini or your preferred spiralized vegetable for a Whole30-compliant meal, or alongside pasta for non-Whole30 eaters. Enjoy!
Tips and Serving Suggestions
- Use high-quality canned tomatoes (San Marzano if available) for a naturally sweet, balanced tomato flavor.
- If you prefer a richer mouthfeel, allow the sauce to cool slightly and refrigerate overnight—flavors deepen the next day. The sauce also freezes well for up to 3 months.
- To thicken the sauce more quickly, increase the heat briefly to raise the simmer and reduce liquid while stirring often; be careful not to scorch the bottom.
- Swap pancetta for bacon if needed, or omit it entirely for a leaner option; adjust seasoning if you omit salty pancetta.
- Serve with a side of roasted vegetables or a large green salad for a full meal.
By Alex Snodgrass
Source: The Defined Dish (original recipe)