Spaghetti With Bolognese Sauce
⏲ ~44 min total · prep 16 · cook 28 · 4 servings
Lunch⏱ 50 min total🔥 5.9g net carbs⚡ ≈564 kcal/serving~13% of calories from carbs
By the KFI Test Kitchen · Tested & approved by Jason Lieu, KFI recipe editor
Published Sep 15, 2026 · Updated Sep 15, 2026
Ingredients
- 2 tbsp olive oil
- 1/2 medium yellow onion, finely diced
- 1 small carrot, finely diced
- 1 celery rib, finely diced
- 3 cloves garlic, minced
- 1 lb ground beef (85/15)
- 2 tbsp tomato paste
- 14 oz can crushed tomatoes
- 1/2 cup beef broth
- 1/3 cup heavy cream
- 14 oz shirataki spaghetti, drained and rinsed
- 1/2 cup grated Parmesan plus 8 basil leaves, for serving
Instructions
- Warm the olive oil in a 4-quart Dutch oven over medium-low and sweat the onion, carrot, and celery 8-10 minutes until soft, glossy, and sweet — never browned; this soffritto is the backbone of the sauce.
- Add the garlic and cook 1 minute, then raise the heat to medium-high and crumble in the beef. Cook 6-8 minutes, breaking it into fine pebbles, until no pink remains and the meat is flecked with brown.
- Stir in the tomato paste and fry it 1 minute, until it darkens to brick red and smells sweet.
- Pour in the crushed tomatoes and broth, bring to a bubble, then drop to a bare simmer, uncovered, for 30 minutes. Stir every 8-10 minutes and scrape the edges; the sauce is ready when it's dense, glossy, and a shade darker.
- Stir the cream through during the last 5 minutes of simmering, then season with salt and pepper to taste.
- Give the shirataki a 30-second rinse, then dry-sauté them in a nonstick skillet over medium-high for 2-3 minutes, tossing, until they squeak and any pooled liquid is gone — this step is the difference between bouncy and watery.
- Twist the noodles into nests in warm bowls, ladle the bolognese over, and finish with Parmesan and torn basil.
Why this recipe works
- A real soffritto Eight to ten minutes of low, slow sweating turns the onion, carrot, and celery glossy and sweet without a hint of brown. That base is why the sauce reads deep instead of flat.
- Paste fried before the tomatoes A minute in the hot pan darkens the tomato paste to brick red and sweetens it. Skipped, the sauce carries a raw edge no amount of simmering fixes.
- Dry-sautéed shirataki Two to three minutes in a hot nonstick pan evaporates the package water. Wet shirataki dilute the sauce on contact in the bowl.
Tips for making this recipe well
Never brown the vegetables
The soffritto wants soft and sweet, so medium-low heat and a patient eight to ten minutes. Browned bits here change the whole direction of the sauce.
Thirty minutes, uncovered, stirred
An uncovered bare simmer reduces the sauce while a stir every eight to ten minutes keeps the edges from catching. Done means the sauce is dense and a shade darker than when it started.
Cream at the end
The heavy cream goes in during the last five minutes, which rounds the acidity without dulling the tomato. Added early, it flattens the brightness and grays the color.
Rinse the shirataki well
A thirty-second rinse washes off the packing liquid, which is the source of the smell people remember. The hot pan after that finishes the job.
Sauce the noodles in the bowl
Twist the shirataki into nests in warm bowls and ladle the bolognese over the top. Mixed together in the pot, the noodles keep releasing water into the sauce.
Serving suggestions
Twist the drained shirataki into nests with tongs, ladle the bolognese over so it pools into the curves, and finish with grated Parmesan and torn basil. The sauce runs generous against its noodles, which is the right ratio for shirataki, and each serving lands at 5.9 net carbs. Warm the bowls first. A cold bowl drags the sauce's temperature down within a minute and the beef fat starts to set at the edges.
Storage and meal prep
The bolognese keeps three to four days refrigerated and improves overnight as the flavors settle. It freezes for two to three months in flat portions and thaws in a pot over low heat with a splash of broth. Keep the shirataki out of the freezer plan; they hold water and turn weepy after thawing. Store noodles and sauce in separate containers, dry-sauté a fresh batch in two minutes, and day-three bowls taste close to day one.
Variations worth trying
- Half beef, half pork Ground pork in place of half the beef gives the sauce a sweeter, softer richness. Brown it the same way in the same window.
- Mushroom version Finely chopped creminis cooked with the beef add depth, and they stretch the meat further. Cook them until their released water is gone.
- Looser ragù Double the beef broth and simmer twenty minutes longer for a wetter sauce. Shirataki in particular like the extra coating liquid.
- Zucchini noodles Spiralized zucchini swap in for the shirataki under the same sauce. Salt and drain them first, the same discipline any zoodle recipe asks for.
Frequently asked questions
Why did my bolognese turn out greasy?
The 85/15 beef renders fat over the long simmer, and some of it needs to go. Skim the surface before the cream goes in, or blot with a paper towel laid over the sauce.
Can it simmer longer than 30 minutes?
Yes. Forty-five minutes to an hour deepens it further as long as the heat stays at a bare simmer and you stir the edges. Add a splash of broth if it tightens past thick.
Do shirataki really need the dry sauté?
Yes. Straight from the bag they carry water that thins the sauce on contact, and two to three minutes in a hot pan is the fix.
What cheese besides Parmesan works?
Pecorino Romano swaps one for one and runs sharper and saltier. Hold back slightly on added salt in the sauce if you make the switch.
Can the sauce be made a day ahead?
That is the ideal plan. Refrigerated overnight, it settles and the flavor rounds out; reheat gently and toss with freshly cooked noodles.
Related keto recipes
As an Amazon Associate and affiliate partner, Keto Food Ideas earns from qualifying purchases at no additional cost to you. Nutritional values are estimates. Recipes are developed with AI assistance and reviewed by our editors before publishing.
← More Lunch recipes · Home