Skip to content
KETOFOCUS.

Sweater weather calls for keto comfort food. Get Cozy →

Keto Beef & Tomato Soup

Creamy beef tomato soup with browned ground beef, a rich tomato base, and lupini noodles, at 23g net carbs and 46.8g protein per bowl. I brown the beef with the onion first, simmer everything in one pot, and I let the cubed cream cheese melt in off the heat, which is what turns the broth creamy without breaking it.
  • 23gnet carbs
  • 46.8gprotein
  • 20minutes
  • 6servings

This post may contain affiliate links. See my disclosure policy.

I started making this keto beef tomato soup last winter when I wanted something warm and filling but didn’t want to blow my carbs on a regular noodle soup. What I ended up with is this creamy, beefy tomato soup that hits somewhere between a classic tomato soup and a lasagna soup (just less cheesy). I’ve made it probably 30 times since then, and I keep coming back to it.

A couple bowls of creamy tomato soup filled with pasta and beef.

The ground beef gives it real body. I brown it with diced onion until everything is soft and starting to caramelize a little, then build the soup right in the same pot. Crushed tomatoes, tomato sauce, chicken broth, dried basil, oregano, and garlic powder. The whole thing comes together in about 20 minutes. If you want a low carb soup that actually feels like a full meal, this is it.

Instead of regular pasta, I use lupini noodles. I’ve tested a lot of keto noodle options over the years and lupini is still my favorite for soups. They hold their shape, they don’t get mushy, and they add 14g of protein per serving on top of the beef. One thing I learned the hard way: rinse the lupini pasta for at least 3 minutes under running water before adding it. The brine leaves a sharp sour note if you rush it. I taste one noodle to make sure it’s clean before it goes in the pot. If you’re more of a regular pasta person, try my keto spaghetti instead.

The creamy part comes from cream cheese stirred in at the end. I cube it small (about half-inch pieces) so it melts fast. A little sugar-free brown sugar substitute balances out the acidity from the tomatoes, and you get this rich, velvety broth that coats the noodles perfectly. My family requests this on cold nights.

I’ve also tried roasting the tomatoes before adding them to the pot, and it does deepen the flavor if you have the extra 20 minutes. Halve a can’s worth of whole tomatoes, roast at 400F for 15-20 minutes, and use those in place of the crushed tomatoes. Not necessary, but a nice upgrade when I’m not rushing.

This works as meal prep too. I portion it into containers for work lunches and the flavors actually get better overnight. If you like hearty, beefy soups, try my keto minestrone. For other easy ground beef dinners, my keto hamburger helper and keto beef and broccoli are both in regular rotation at my house.

Close up of a bowl of tomato soup with spiral shaped pasta noodles.

Low carb noodle options I've tested in this soup

If you’ve made my keto recipes before, you know I’m a lupini pasta person. I’ve tried every keto noodle on the market and lupini is still my top pick for soups. They’re high protein, made from lupini beans (a legume that is mostly fiber), and they actually taste like real pasta in a hot broth.

I order my lupini noodles from Amazon or Thrive Market, but here are the substitutes I’ve tested in this soup:

  • Shirataki noodles: I prepare these according to the package, then toss them in at the end with the cream cheese. Drop the chicken broth to 4 cups since these don’t absorb liquid the way lupini does.
  • Hearts of palm noodles: Same approach. Prepare per the package, add at the end, and reduce broth to 4 cups. I like the spaghetti cut for this.
  • Shredded cabbage: I started testing this after seeing how many readers wanted an even lower carb option. Thinly sliced green cabbage simmers right in the pot and adds bulk at only about 2g net carbs per cup. I let it cook 5-6 minutes until just tender.
  • Cauliflower rice: Lower the broth to 4 cups and add the cauli rice at the end. Let it cook 2-3 minutes, then stir in the cream cheese. Not noodles, obviously, but it makes the soup heartier.

How to store, freeze, and reheat this soup

Refrigerator storage

I let the soup cool completely before transferring it to an airtight container. It keeps in the fridge for up to 4 days. Give it a good stir before reheating since the cream cheese can cause some separation. I actually think this soup tastes better on day two.

Freezer storage

I’ve frozen this soup both with and without cream cheese. My recommendation: freeze it without the cream cheese. It separates when frozen and the texture gets grainy. Just make the soup up to the cream cheese step, let it cool, and freeze in ziplock bags. It keeps for up to 3 months. Add the cream cheese when you reheat.

Reheating from frozen

On the stovetop: I put the frozen soup in a saucepan over low heat and stir it occasionally until it thaws. Then I turn it up to medium, stir in the cream cheese, and heat until everything is incorporated.

In the microwave: Place the frozen soup in a microwave-safe bowl. I use the defrost setting first, then heat in 2-minute intervals, stirring between each. Once it’s mostly thawed, switch to 30-second intervals. Add the cream cheese during the last couple intervals.

If you’re looking for another soup that meal preps well, my keto chicken rice soup holds up just as well in the fridge.

How to get this soup under 15g net carbs

Each serving comes in at 23 grams of net carbs, which I know is higher than some people want. I've played around with lowering the carbs and here's what works without killing the flavor. With these tweaks, I get it down to only 12 grams of net carbs per serving.

  • Omit the onion: The yellow onion adds almost 1 gram carb per serving. I've made it without the onion plenty of times and the soup is still good.
  • Decrease the crushed tomatoes: Instead of one 28-oz can, use half a can. This saves you around 5 net carbs per serving and the soup is still plenty tomatoey.
  • Omit or decrease the tomato sauce: Cutting the tomato sauce saves about 6 net carbs per serving. I usually cut it in half rather than skipping it completely.
Discover more keto recipes on our channel Hundreds of keto recipe videos, with step by step instructions and the tips that make keto easy.
KetoFocus
The recipe

Keto Beef & Tomato Soup

Print Pin
Prep 5 min Cook 15 min Total 20 min Serves 6

Ingredients

Servings 6

Beef and Tomato Soup Ingredients

Step by Step Instructions

  1. Brown the ground beef

    Heat a large pot or dutch oven over medium heat, add ground beef, onion and a pinch of salt and pepper. Cook for 4-5 minutes, breaking the meat in small pieces, until it’s no longer pink and the onions are translucent. Drain any excess grease if desired.

    For this step

    • 1 1/2 lb lean ground beef
    • 1/2 medium yellow onion, diced
    A dutch oven with cooked ground beef and onions.
  2. It's not tomato soup without tomatoes

    Stir in the basil, oregano, garlic powder, chicken broth, crushed tomatoes, tomato sauce, and brown sugar substitute (if using). Bring to a simmer and add noodles. Simmer until the pasta is just al dente (about 4-6 minutes).

    For this step

    • 1 tablespoon dried basil
    • 1 teaspoon dried oregano leaves
    • 1 teaspoon garlic powder
    • 6 cups chicken broth
    • 28 oz can crushed tomatoes
    • 15 oz can tomato sauce
    • 1 teaspoon brown sugar substitute (optional)
    • 8 oz lupini noodles
    A red dutch oven filled with tomato based soup with ground beef and pasta.
  3. Make it creamy

    Remove from the heat. Add the cubed cream cheese and stir until cream cheese is melted and incorporated. To serve, top with parmesan cheese and fresh basil if desired.

    For this step

    • 8 oz cream cheese, softened and cubed
    A big scoop of cream cheese sitting on top a pot of tomato soup waiting to be stirred in.

Nutrition

Per serving: 1 bowl

Calories
522
Fat
25.7g
Protein
46.8g
Total carbs
39g
Net carbs
23g

Nutrition is an estimate calculated from the ingredients listed. Brands vary, so check labels if you track closely.

Frequently Asked Questions

Can I make this in a slow cooker or Instant Pot?

I've done both. For the slow cooker, I brown the beef and onion on the stove first, then dump everything except the noodles and cream cheese into the slow cooker on low for 4-6 hours. I add the noodles in the last 15 minutes and stir in the cream cheese at the end. For the Instant Pot, I use the saute function to brown the beef, add the broth and tomatoes, pressure cook on high for 5 minutes, quick release, then stir in the noodles and cream cheese. My beef tips and noodles is another one that works great in the Instant Pot.

What can I use instead of cream cheese?

I've subbed in 1/4 to 1/2 cup of heavy cream and it works well. The soup is a little thinner but still creamy. I've also blended cottage cheese smooth and stirred it in at the end, and plain greek yogurt works if you add it off the heat so it doesn't curdle. For a dairy-free version, I stir in about 1/3 cup of full-fat coconut cream at the end, and I let the soup simmer an extra 5 minutes first to reduce the broth slightly. Dairy-free cream cheese works too, though I've found coconut cream blends more smoothly into the hot broth.

Can I use a different meat instead of ground beef?

I've made this with ground turkey and it works, but the flavor is noticeably lighter. When I use turkey, I add an extra tablespoon of tomato paste and a little more salt to make up for the richness you lose from the beef fat. Ground chicken is even milder, so I'd stick with turkey if you're swapping. Mild Italian sausage makes a completely different (and really good) soup. I remove the casings and crumble it the same way I do the beef, and the fennel and herbs in the sausage add so much flavor that I skip the dried basil entirely. If you like that direction, my stuffed Italian sausage is another favorite.

How do I keep the soup from being too acidic?

I use the teaspoon of sugar-free brown sugar substitute from the recipe card, and that does the trick for me. The cream cheese also mellows the acidity a lot. If it's still too tangy for your taste, I'd add another half teaspoon of the sweetener rather than more cream cheese, which can make it too thick.

Browse by ingredient
Similar recipes

People who cooked Keto Beef & Tomato Soup also made

Reviews

Tap to rate

4.8 from 27 ratings, 16 written

Made this recipe?

Replying to Brittany

Your rating

Bonnie A.

I stirred the cream cheese in off the heat and the whole pot turned creamy right in front of me. So glad I tried your recipe. The leftovers tasted just as good on day two. The lupini noodles were new to me but they held up fine, no mush. Big pot again this week!!!

Reply

Dana L.

Does skipping the brown sugar substitute change the flavor a lot? I don’t have any on hand.

Reply

Fatima

I’ve been making this on regular rotation for a few months now, six or seven batches at this point. The brown sugar substitute says optional but I stopped treating it that way. It rounds out the acidity from the tomatoes. Subtle, but I skipped it once and the soup came out noticeably sharper, less settled. Small addition, doing real work.

Reply

Samantha Wilson

Hold the cream cheese back and add it when reheating individual portions, not into the whole pot. The beef and tomato base freezes clean without it, and the cream cheese melts back in fresh in under a minute. Been making this in batches for three weeks now, it’s the easiest lunch I’ve got. Four minutes from fridge to bowl.

Reply

Annie Lampella

Per-portion is smarter. I always add to the full pot, might rethink that.

Reply

Maria

Grabbed fire-roasted tomatoes instead of crushed by accident and just went with it because I was already halfway in. Right call. The smokiness sits underneath everything else (the basil, the oregano, that cream cheese finish) and makes the broth taste like it’s been going since noon even when it hasn’t. I also drop in a parmesan rind during the simmer, which is a habit from other tomato soups, and together the two swaps gave the broth this depth I wasn’t expecting from a weeknight pot. Hot take for June: soup weather is just a mindset, the AC was running and the house smelled unreal. Pull the rind before the cream cheese step or fishing it out gets messy. That fire-roasted swap is one I’m keeping.

Reply

Annie Lampella

Fire-roasted has been on my list forever, and the parmesan rind pull before cream cheese is a good catch. Fishing around in hot thick broth is not how you want to spend a Tuesday.

Reply

Maria

Ha, not the Tuesday activity. Though I probably would’ve fished it out anyway, no point wasting it.

Reply

Ashley

Picked this because the protein numbers looked too good to be real, and honestly I didn’t think I had the patience for soup from scratch. Checked the recipe like six times but totally worth it. The basil and oregano give it this pasta-sauce warmth I wasn’t expecting, and the lupini noodles actually work. Like they don’t feel like a sad substitution, they just fit. Really happy with it for a first attempt. Anyway, does this freeze well? I batch cook and I’m worried the cream cheese base gets grainy when it thaws.

Reply

Annie Lampella

Freeze it before the cream cheese. Stir in fresh cream cheese when you reheat. I make this one all winter for that exact reason.

Reply

Quinn

Ran this soup through a weeknight test after a long stretch of not finding a keto beef soup worth making twice. The garlic powder and basil balance is right. Crushed tomatoes give it body that a lot of lighter soups skip, and the seasoning doesn’t need heat to carry it. One note: the recipe calls for chicken broth, and it works, but beef stock is noticeably better. Chicken broth is too neutral for all that ground beef. Beef stock pulls everything together. I’d keep everything else exactly as written. Glad I stumbled on this one.

Reply

Annie Lampella

Beef stock is the right call. I default to chicken broth because it’s what I always have, but the beef stock version has more depth with all that ground beef in there.

Reply

Sonia

There’s a beef and tomato soup my mom made every fall that I’d completely written off going keto. The cream cheese melted into the broth gives it this depth I genuinely thought I’d never have again. Texted her the recipe the second I finished the bowl.

Reply

Annie Lampella

That last line is the whole point of cooking. Cream cheese into broth sounds odd but it doesn’t just add richness, it pulls the acidity back in a way nothing else does.

Reply

Christina

Wasn’t sure lupini pasta would hold up in soup but it doesn’t go mushy like zucchini noodles. The cream cheese finish did something I wasn’t expecting. This replaced my old standby.

Reply

Annie Lampella

Lupini was the unlock for me too. The cream cheese step surprises people because it’s not just richness, it actually mellows the tomato base.

Reply

Morgan

Four batches in and that cream cheese at the end is the only reason this doesn’t taste like canned soup.

Reply

Annie Lampella

Yeah, four batches is when you stop second-guessing it. And the cream cheese isn’t just for richness, the tang cuts the acidity from the tomatoes in a way heavy cream won’t.

Reply

Rebecca

Kept skipping this because I couldn’t picture lupini noodles in something that wasn’t trying to be pasta. Made it this week. Texture held in the broth, which I can’t say for most keto noodle swaps. First keto soup where I forgot I was compensating.

Reply

Annie Lampella

Lupini stay firm in broth. That last line is what I was going for with this one.

Reply

Luis

Learned after my second pot: cube the cream cheese smaller than you think, maybe half-inch pieces. It melts into the broth smoothly without leaving white pockets you have to stir out. This is my cold-weather staple now.

Reply

Annie Lampella

Good call on the size. I also pull mine out 15 minutes before to soften. Cold cream cheese right out of the fridge takes forever to break down.

Reply

Kelly

I had my doubts about lupini pasta in a tomato broth soup, mostly because every other keto noodle I’ve tried turns to mush by day two. These held up. The cream cheese swirled in at the end is what ties it all together.

Reply

Annie Lampella

That cream cheese swirl is non-negotiable. Heavy cream gets close but it doesn’t have the same body in a tomato broth.

Reply

Sonia N.

I’d never cooked with lupini noodles before and was a little nervous about it, but they held up really well in the broth. The cream cheese stirred in at the end gave the whole pot this unexpected richness that made it feel like something I’ve been making for years.

Reply

Annie Lampella

That ‘felt like I’ve been making it for years’ is exactly what cream cheese does to a tomato broth. Stirred in at the end wasn’t the original plan, but now it’s non-negotiable.

Reply

Nicole

I’m not a cook, like at all. Had a pound and a half of ground beef to use up and figured I’d give this a shot. I was skeptical when the recipe said to stir cream cheese straight into hot broth, but it just melted right in and turned everything creamy and thick. Made myself a big bowl and sat there kind of in disbelief that I pulled this off. More on the way this weekend.

Reply

Annie Lampella

Ha, that bowl. Now you’ve got a pound and a half recipe locked in. More on the way is the right call.

Reply

Mei

Never cooked with lupini pasta before. Does it go in raw and cook in the broth, or should I cook it separately first? Either way I’m guessing it soaks up a lot of liquid.

Reply

Brittany

First time using lupini pasta in a soup and I wasn’t totally sure how they’d hold up, but they stayed firm even after sitting in the broth for a while. The cream cheese incorporation is more subtle than I expected, it doesn’t taste like a cream cheese soup at all, just rounds out the tomato base. Solid weeknight bowl. Do you think this freezes well, or does the cream cheese separate once it thaws?

Reply

Annie Lampella

Freeze before the cream cheese step. Stir in fresh cream cheese when you reheat. It goes grainy if it’s already in.

Reply

Brett

Tip that took me two batches to figure out: rinse the lupini pasta way longer than seems necessary. First time I barely rinsed them and couldn’t place why there was this sharp sour note in every bite. Looked it up, that’s just what lupini does if you rush it. Spent a solid 3 minutes rinsing the second time and suddenly the soup was what it was supposed to be. The cream cheese stirred in at the end is freaking perfect, by the way.

Reply

Annie Lampella

Three minutes minimum. The brine on lupini is stubborn, I taste one to know when it’s ready. And the cream cheese, yeah.

Reply

Keep going

More Dinner Recipes

See all 172 Dinner recipes

Get new recipes from Annie

One email a week. Unsubscribe whenever you like.