Soups & Stews
This beefsteak tomato soup recipe transforms hearty beef and garden-fresh tomatoes into a restaurant-worthy bowl of comfort. The secret lies in slow-roasting beefsteak tomatoes until caramelized, then building depth with smoky roasted garlic and tender meatballs that melt into the broth.
What makes this version stand out is how the rich, umami-packed beef perfectly balances the bright acidity of the tomatoes—no one ingredient overpowers the other.
Start with a base of charred tomatoes and onions, their smoky aroma filling your kitchen long before the soup is ready. The meatballs, made from ground beef and herbs, cook directly in the broth, infusing every spoonful with savory flavor.
This method ensures maximum tenderness while keeping the soup cohesive and velvety, not watery or heavy. The result is a soup that feels indulgent yet remains light enough for any meal.
By the time you’re done, you’ll have a bowl that’s rich with beefy depth, brightened by tomatoes, and elevated by the subtle smokiness of roasted aromatics. The meatballs add pockets of hearty texture, making each bite satisfying without being overwhelming.
Serve with crusty bread to soak up every last drop—this soup is the kind of meal that turns ordinary weeknights into something special.
Perfect for chilly evenings or as a cozy appetizer before a steak dinner, this recipe delivers restaurant-quality results at home. The technique is straightforward, but the flavor is anything but basic. Let’s get cooking—your taste buds will thank you.
Ingredients for beefsteak tomato soup
Sixteen ingredients to make this restaurant-worthy beefsteak tomato soup shine.
| Ingredient | Amount | Notes |
|---|---|---|
| Beefsteak Tomatoes 🍅 | 3 lb | Heirloom if available, halved |
| Yellow Onions 🧅 | 2 whole | Thickly sliced, charred |
| Ground Beef 🥩 | 1 ½ lb | 80/20 fat ratio preferred |
| Garlic Cloves 🧄 | 6 cloves | Roasted, peeled |
| Fresh Basil 🌿 | ½ cup | Chopped, stems removed |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Beef Broth 💧 | 4 cups | Homemade or high-quality |
| Heavy Cream 🥛 | 1 cup | Full-fat for richness |
| Parmesan Cheese 🧀 | ½ cup | Freshly grated, plus extra |
| Olive Oil 🫒 | ½ cup | Extra-virgin for roasting |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | 1 tsp | Freshly ground |
| Dried Oregano 🍃 | 1 tsp | For meatball seasoning |
| Breadcrumbs 🍞 | ½ cup | For meatball texture |
| Egg 🥚 | 1 whole | For meatball binding |
The tomatoes are non-negotiable—heirloom or beefsteak with that meaty texture. Grab the biggest, firmest ones you can find, preferably at a farmers market or the produce section of Whole Foods or Trader Joe's. The onions? Yellow or red work, but avoid sweet varieties like Vidalia—they melt instead of caramelizing. For the beef, 80/20 ground chuck gives you that rich, juicy flavor. If you're feeling fancy, Costco sells it in bulk for a steal. Skip the pre-grated Parmesan—grate it yourself from a wedge for that real cheesy punch.
No beefsteak tomatoes? Roma or San Marzano work in a pinch, but they won’t have the same depth. Short on fresh basil? Dried basil at half the amount gets you close, but trust me, fresh is worth it. The meatballs can be made ahead and frozen—just thaw and drop them straight into the soup. No breadcrumbs? Crushed crackers or panko work too. The broth is where the magic happens—homemade is ideal, but even Swanson’s or Pacific Foods work in a bind. Just don’t use the powdered kind—it’s sad.
This soup tastes even better the next day—make a double batch if you can. Store leftovers in the fridge for up to 5 days or freeze for 3 months. The meatballs can be prepped ahead and frozen separately, then added straight to the pot when you’re ready to cook. Garnish with extra Parmesan and parsley right before serving—that fresh green color makes it look (and taste) restaurant-worthy. Serve with crusty bread to soak up every last drop of that smoky, beefy goodness.
Why You'll Love This Recipe
- No-Chop Nightmare: I swear, this is the only soup where I can skip chopping onions—just toss in those pre-diced yellow ones from the store. The beefsteak tomatoes handle the work for you, bursting into juicy chunks as they simmer, so all I’m really doing is stirring. (Yes, even on a Tuesday night.)
- Meat Meets Magic: That ground beef isn’t just filler—it’s the secret weapon. Browned just right, it dissolves into the soup but leaves behind this deep, savory backbone that makes the tomatoes taste richer, not just sweet. Add fresh basil at the end? Instant restaurant-quality vibes.
- Leftover Goldmine: This soup actually improves the next day. The flavors meld into something even cozier, and it reheats like a dream—no splitting or soggy bread. I freeze portions too; just thaw and heat, and it’s my lazy Sunday lunch sorted.
- Budget-Friendly Feast: Beefsteak tomatoes might sound fancy, but they’re cheaper than heirloom varieties and pack way more juice. A pound of ground beef stretches this into six bowls, and I’ve served it to picky teens, date nights, and potlucks—no one ever questions the ingredients. (Between us, they shouldn’t.)
Step-by-step instructions for beefsteak tomato soup with meatball twist
Here's how to build a rich, smoky tomato base and handmade meatballs that transform ordinary soup into something extraordinary.
Roast Tomatoes and Onions for Deep Flavor
Preheat your oven to 425°F and line two baking sheets with parchment paper. Halve the 3 lb beefsteak tomatoes and thickly slice the 2 whole yellow onions. Arrange them on the baking sheets cut-side up, drizzle with 0.25 cup olive oil, and sprinkle with 0.75 tsp salt and 0.5 tsp black pepper.
Roast for 30-35 minutes until the tomatoes collapse slightly and the onions turn deep golden brown with charred edges. This roasting step develops intense sweetness and smoky depth that forms the soul of your soup. The tomatoes should be soft enough to mash easily with a fork when done.
Prepare the Meatballs with Perfect Texture
In a medium bowl, combine the 1.5 lb ground beef, 0.5 cup breadcrumbs, 1 whole egg, 1 tsp dried oregano, 0.5 tsp salt, and 0.5 tsp black pepper. Mix gently with your hands until just combined—don't overwork the mixture or the meatballs will become dense.
Roll the mixture into 12 equal-sized meatballs (about 1.5 inches in diameter). The key here is consistency in size so they cook evenly. Place them on a separate baking sheet and refrigerate while you prepare the soup base.
Build the Smoky Tomato Base
Heat 0.25 cup olive oil in a large Dutch oven over medium heat. Add the roasted tomatoes and onions along with the 6 peeled garlic cloves (you can use the roasted ones if you prepped them). Cook for 5 minutes until fragrant, stirring occasionally.
Pour in the 4 cups beef broth and bring to a gentle simmer. Let it cook uncovered for 15 minutes to allow the flavors to meld. The mixture should reduce slightly and develop a rich, concentrated tomato aroma. This is where the magic happens—don't rush this step.
Cook the Meatballs and Finish the Soup
Carefully add the chilled meatballs to the simmering tomato mixture. They should be fully submerged—add a splash of water if needed. Simmer gently for 15-20 minutes until the meatballs are cooked through (internal temperature should reach 160°F) and the soup has thickened slightly.
Stir in the 0.5 cup chopped fresh basil and 1 cup heavy cream. Simmer for another 5 minutes just to warm through. The cream should blend smoothly, creating a velvety texture without curdling. Taste and adjust seasoning with additional salt or black pepper if needed.
Serve with Fresh Garnishes
Ladle the soup into bowls and top each serving with 1 tablespoon freshly grated Parmesan cheese and a sprinkle of 0.25 cup chopped fresh parsley. The contrast of creamy soup, tender meatballs, and bright herbs makes this dish truly special.
Serve immediately with crusty bread to soak up every last drop of that rich, smoky tomato broth. The meatballs should be juicy on the inside with a lightly browned exterior, while the soup maintains a perfect balance between creamy and rustic tomato flavors.
Pro Tips For Making Beefsteak Tomato Soup
- CRANK THE HEAT FIRST: Don’t let those onions turn to mush—sear them over medium-high heat until they’re deep golden and just starting to caramelize. I used to walk away for "just a minute," and by the time I came back, they were gray sludge. Two minutes max, stir like you’re mad.
- SALT THE GROUND BEEF: Toss the raw ground beef with ½ teaspoon of salt before browning—it renders faster and develops better flavor. I learned this the hard way after making soup that tasted bland no matter how much I seasoned later. (Yes, even if you’re using salted butter.)
- SKIP THE SKINNY TOMATO JUICE: After simmering, strain out the tomato skins and seeds—they add bitterness and make the soup look murky. I used to leave them in, thinking "more tomato = better," but they turn the soup into a sad, watery mess. A fine-mesh sieve solves this in 30 seconds.
- TOAST THE BASIL LEAVES: Tear the fresh basil and briefly toast the leaves in a dry pan over low heat until fragrant (about 15 seconds). This deepens the flavor without cooking the herbs to death. I was skeptical until I tried it—now I do it every time, even when I’m in a rush.
Troubleshooting your beefsteak tomato soup
Tomatoes Too Watery
If your roasted tomatoes release too much liquid during cooking, it’s likely because they weren’t fully charred or the oven wasn’t hot enough. To fix this, roast them at 450°F instead of 425°F for 25-30 minutes—the higher heat concentrates their juices.
Also, pat them dry with a paper towel before roasting. For future batches, use heirloom or beefsteak tomatoes exclusively—they hold up better than Roma or cherry tomatoes.
Meatballs Falling Apart
Overmixing the meatball ingredients is the #1 cause of crumbly meatballs. Wet your hands before handling the mixture to prevent sticking, and mix just until combined—no more than 10-12 strokes. For extra binding, add 1 tbsp grated Parmesan to the meatball mix.
If they still break apart, reduce the breadcrumbs to 0.375 cup and add 1 tbsp cornstarch for structure. Chill the meatballs for 15 minutes before cooking to help them hold together.
Soup Too Thick or Gluey
A gluey texture usually means the soup reduced too much or the cream wasn’t incorporated properly. To fix it, whisk in ¼ cup warm water or broth and simmer gently for 5 minutes to loosen the consistency.
If the soup still feels heavy, stir in 2 tbsp heavy cream at the end instead of all at once. For prevention, skim excess foam from the surface during simmering and avoid stirring vigorously—gentle stirring preserves the silky texture.
Broth Too Salty
If your beef broth was too salty (or you over-seasoned), don’t panic—dilution is your friend. Stir in ½ cup warm water or milk and simmer for 5 minutes to balance the flavor.
For a more sophisticated fix, add 1 tbsp unsalted butter or 2 tbsp heavy cream, which adds richness to counteract saltiness. Taste as you go—sometimes a pinch of sugar (just ¼ tsp) can also help round out harsh saltiness.
Meatballs Overcooking
Meatballs cooked too long turn dry and tough. To prevent this, remove them from the soup when they reach 155°F internal temperature (they’ll rise to 160°F while resting). For extra insurance, add them to the simmering broth only 10 minutes before the end of cooking.
If they’re already overdone, shred them and stir back into the soup—they’ll still add great flavor, just with less texture. For future batches, use 85/15 ground beef instead of 80/20 for slightly leaner (but still juicy) meatballs.
Cream Curdling
Cream curdling happens when it’s added to a hot soup or the broth is too acidic. To fix it, immediately whisk in 1 tbsp cold water or ice to stabilize the cream.
For prevention, temper the cream by whisking it into ¼ cup warm broth first, then slowly adding it to the soup. Keep the soup at a gentle simmer (never boiling) when adding cream.
If curdling occurs, strain the soup through a fine-mesh sieve to remove lumps—your soup will still taste creamy and delicious.
Nutrition facts
Frequently asked questions
Can I substitute beefsteak tomatoes with regular tomatoes?
While you can use Roma or San Marzano tomatoes in a pinch, beefsteak tomatoes are ideal because of their thick flesh and meaty texture. They hold up better during roasting and won’t turn mushy. If substituting, choose firm, ripe tomatoes and roast them at a slightly higher temperature (450°F) for 20-25 minutes to concentrate their juices.
How do I make this soup vegetarian?
Swap the ground beef for 1.5 lb lentils or mushrooms (finely chopped cremini or portobello). For meatballs, use a mix of 1 cup cooked lentils, 0.5 cup breadcrumbs, 1 egg, and 1 tbsp soy sauce for binding. Simmer the meatballs for 10-12 minutes longer to ensure they’re tender. The soup will still be hearty and flavorful!
Can I make this soup ahead of time?
This soup tastes even better the next day. Prepare it fully, then store it in an airtight container in the fridge for up to 5 days or freeze for 3 months. Reheat gently on the stove over medium-low heat, stirring occasionally, until warmed through. The flavors deepen as it sits, making it perfect for meal prep.
Why does my soup taste too acidic?
If the tomatoes are overpowering, balance the acidity by adding 1 tbsp sugar or 1 tsp honey to mellow the flavor. For a richer taste, stir in 1 tbsp unsalted butter or 2 tbsp heavy cream to round out the brightness. Avoid adding more salt—it’ll amplify the acidity instead of fixing it.
What’s the best bread to serve with this soup?
Crusty bread like a baguette, ciabatta, or sourdough works best—it holds up to the hearty soup and soaks up every drop. For extra indulgence, toast the bread and rub it with a garlic clove before serving. Avoid soft breads like white sandwich bread, as they’ll turn mushy when dipped.
