Soups & Stews
This beef and tomato macaroni soup recipe delivers comfort in every spoonful—rich beef broth, tender meatballs, and al dente pasta all simmered together in one pot.
The secret lies in browning the beef first for deep flavor, then letting everything meld into a hearty, savory blend that feels like a warm hug on cold days. What makes this version special is the meatball twist, adding protein-packed texture that transforms it from ordinary to exceptional.
The beauty of this one-pot meal is its simplicity: no chopping vegetables into tiny pieces, no multiple pans to clean. You'll start with ground beef and herbs forming those flavorful meatballs, then build a robust broth with tomatoes, onions, and garlic.
The pasta cooks right in the broth, absorbing all that delicious flavor as it goes—no risk of mushy noodles here. By the time it's done, you'll have a soup so satisfying, it becomes the centerpiece of any meal.
What you end up with is a bowl of soup that's perfectly balanced—tender meatballs, rich tomato broth, and al dente macaroni all working together. The aroma alone will have everyone gathering around the table, and each bite delivers that perfect combination of savory, tangy, and comforting.
This is the kind of soup that disappears quickly, so make sure to have extra bread on hand for soaking up every last drop.
Serve it with a crisp green salad or crusty bread to complete the meal, and you've got a dinner that's both impressive and effortless. The best part? Leftovers reheat beautifully, making this the ultimate make-ahead solution for busy weeks. Let's get cooking!
Ingredients for beef and tomato macaroni soup
Fifteen simple ingredients transform into the ultimate comforting one-pot meal.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef 🥩 | 1 ½ lb | 80% lean for best flavor |
| Elbow Macaroni 🍝 | 12 oz | Dry, uncooked pasta |
| Canned Tomato Sauce 🍅 | 1 can | 28 oz, San Marzano preferred |
| Yellow Onion 🧅 | 1 whole | Medium, diced |
| Garlic Cloves 🧄 | 4 cloves | Fresh, minced |
| Carrots 🥕 | 3 medium | Peeled, sliced into rounds |
| Beef Broth 💧 | 4 cups | Low-sodium preferred |
| Whole Eggs 🥚 | 2 whole | For meatballs |
| Breadcrumbs 🍞 | ½ cup | Panko for extra crunch |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Dried Oregano 🍃 | 1 tsp | Italian preferred |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly cracked |
| Salt 🧂 | 1 ½ tsp | Kosher preferred |
| Grated Parmesan Cheese 🧀 | ¼ cup | Freshly grated |
| Olive Oil 🫒 | 2 tbsp | Extra-virgin for browning |
The ground beef is where the magic starts—80% lean gives you that perfect balance of flavor and texture. Trader Joe's or Costco usually have great prices, and I always grab the pre-grated Parmesan at Whole Foods for that extra umami punch. The San Marzano tomatoes? Worth the splurge if you can find them—they're sweeter and less acidic. For the carrots, medium-sized work best; if they're too big, just slice them thinner. The pasta? Elbow macaroni holds up perfectly in the broth without turning mushy.
No San Marzano tomatoes? Any good-quality canned tomatoes will work—just make sure they're crushed or sauce. Running low on breadcrumbs? Crushed crackers or cornflakes in a pinch. The beef broth can be homemade or store-bought, but if you're using store-bought, low-sodium is key—you'll be adding your own salt later. Fresh parsley is ideal, but dried parsley at one-third the amount gets you close. And if you're out of olive oil, vegetable oil works fine for browning—just don't use it for the final drizzle.
This soup tastes even better the next day as all the flavors meld together. Store leftovers in the fridge for 4-5 days or freeze for 3 months. I always make a double batch—it disappears fast! For reheating, just warm on the stove with a splash of water or broth to loosen it up. The meatballs might dry out if overcooked, so keep an eye on them and add a little extra broth if needed. Serve with crusty bread to soak up every last drop of that rich, savory broth.
Why You'll Love This Recipe
- Pantry-Friendly Magic: I swear by this recipe because it lives in my pantry. No fresh herbs? No problem—the canned tomato sauce and garlic cloves alone pack enough depth. Brown the ground beef until it’s crispy, toss in a chopped onion, and boom: instant flavor without the grocery run.
- Crowd-Pleasing Simplicity: Between us, this is the one dish I make when my kids’ friends show up. The elbow macaroni soaks up the rich tomato-beef sauce while the onions caramelize just enough to add sweetness. It’s not fancy, but everyone finishes their bowls.
- Leftovers That Beg for More: Honestly, I always make extra. The next day, the flavors meld even better—the beef gets tender, the pasta absorbs the sauce, and reheating it is a crime if you don’t. I freeze portions too; just add water to thaw, and it’s a quick lunch.
- Budget Dinner, Big Impact: Ground beef and canned tomatoes stretch into a full meal for less than $10. The onion and garlic cost pennies, and the macaroni? Cheap as chips. Yet it tastes like I spent hours simmering a gourmet stew. My wallet thanks me every time.
Step-by-step instructions for beef and tomato macaroni soup with meatballs
This hearty soup comes together in one pot with tender meatballs and rich tomato broth.
Prepare the Meatball Mixture
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 ground black pepper, and 1.5 tsp salt. Using your hands, mix everything gently until just combined—don't overwork the mixture or the meatballs will become dense.
Roll the mixture into 1-inch balls (you should have about 12 meatballs total) and place them on a plate. This step ensures your meatballs will stay intact while cooking and absorb all the delicious flavors from the soup.
Brown the Meatballs and Sauté the Vegetables
Heat 2 tbsp olive oil in a large Dutch oven over medium-high heat. Add the meatballs in a single layer and cook for 3-4 minutes per side until they're golden brown on all sides. Remove the meatballs and set them aside on a plate.
In the same pot, add the 1 whole yellow onion and 3 medium carrots, sliced into rounds. Cook for 5 minutes until the onions soften and begin to caramelize. Add the 4 cloves minced garlic and cook for another 30 seconds until fragrant—this step builds the flavor foundation for your soup.
Build the Tomato-Broth Base
Pour in the 1 can canned tomato sauce and stir to combine with the sautéed vegetables. Add the 4 cups beef broth and bring the mixture to a gentle boil. Return the meatballs to the pot, reduce heat to medium-low, and let it simmer for 10 minutes. This allows the flavors to meld together beautifully.
I like to stir occasionally during this time—just enough to keep everything moving, but not so much that the meatballs break apart. The soup should be developing a rich, savory aroma that fills your kitchen.
Cook the Pasta and Finish the Soup
Add the 12 oz elbow macaroni to the pot and stir gently to distribute it evenly. Increase heat to medium and bring the soup back to a gentle boil. Cook for 10-12 minutes, stirring occasionally, until the pasta is al dente—you want it tender but still with a slight bite.
Taste and adjust seasoning if needed. The soup should be flavorful but balanced—add more salt or dried oregano if you prefer a stronger taste. This is where you can really customize the soup to your liking.
Serve with Fresh Garnishes
Once the pasta is perfectly cooked, remove the pot from heat and let it sit for 2 minutes. This resting time allows the flavors to settle and makes the soup even more delicious. Ladle the soup into bowls and garnish each serving with 0.25 cup fresh parsley and 0.25 cup grated parmesan cheese.
The parsley adds a fresh brightness that cuts through the richness of the meatballs and tomato sauce, while the parmesan adds a salty, umami finish. Serve immediately while the meatballs are still warm and the pasta is al dente for the best experience!
Pro Tips For Making Beef And Tomato Macaroni Soup
- Brown the Beef Right: I learned this the hard way—skip the pre-cooked crumbly beef, and you’ll end up with a mushy, flavorless base. Cook the ground beef in batches over medium-high heat until it’s deeply browned (not just pink), breaking it into small chunks with a wooden spoon. The crust forms flavor, and that’s what makes this soup taste like more than just canned tomatoes.
- Dice That Onion Small: Big onion chunks turn into sad, watery bits in this soup. Finely dice the onion—think 1/4-inch pieces or smaller—so it dissolves into the sauce instead of sitting there like a sad, chewy afterthought. If you’re impatient, pulse it in a food processor for 3 seconds, then chop the rest by hand.
- Salt the Pasta Water Hard: The pasta in this soup needs to absorb flavor, not just starch. Boil your elbow macaroni in heavily salted water (like the ocean, but edible) for 2 minutes less than the package says—it’ll finish cooking in the soup. Under-salted pasta water is the fastest way to ruin a simple dish.
- Add Tomato Paste First: Sounds weird, but it works: Stir in 1-2 tablespoons of tomato paste with the garlic and onions before adding the canned tomato sauce. It thickens the base, deepens the flavor, and prevents the soup from tasting like watered-down canned tomatoes. (I was skeptical until I tried it—now I won’t go back.)
Flavor customization for this dish
Spicy Italian Twist
For a bold kick, add 1 tbsp Calabrian chili paste or 2 tsp red pepper flakes when browning the meatballs. This Southern Italian-inspired variation brings heat that pairs beautifully with the rich tomato base.
I also like to add ½ tsp fennel seeds to the meatball mixture for an authentic touch. 🌶️
Creamy Garlic Finish
Transform this into a creamy version by stirring in ½ cup heavy cream or ½ cup whole milk during the final 5 minutes of simmering. For extra richness, add ½ cup grated Gruyère cheese along with the cream. This creates a velvety texture that balances the tomato acidity perfectly.
Smoky BBQ Fusion
Swap the tomato sauce for ½ cup BBQ sauce (I recommend Sweet Baby Ray's) and add 1 tbsp smoked paprika to the meatball mixture. Top with ¼ cup chopped cilantro and a drizzle of hot honey before serving. This fusion brings a sweet-smoky depth that's surprisingly delicious.
Vegetarian Adaptation
Replace the beef with 1 lb lentils or 12 oz crumbled tempeh for the meatballs. For lentils, cook them until tender first, then mix with 1 egg and ½ cup breadcrumbs.
The tempeh version benefits from marinating in 1 tbsp soy sauce and 1 tsp smoked paprika before forming into balls. Both work beautifully!
Herb-Infused Variations
Experiment with different herb combinations in the meatball mixture. Try 1 tsp dried basil and ½ tsp thyme for a classic Italian profile, or 1 tsp dried rosemary and ½ tsp sage for a rustic twist.
Fresh herbs like chopped basil or dill added at the end also brighten up the soup beautifully.
Cheesy Potato Upgrade
Add 2 cups diced Yukon Gold potatoes when sautéing the vegetables. They'll cook through during the simmering process. Stir in ½ cup shredded sharp cheddar at the end for a hearty, cheesy twist that feels extra comforting. This version is perfect for cold evenings when you need something substantial.
Nutrition facts
Frequently asked questions
Can I use ground turkey instead of beef?
Ground turkey works beautifully in this recipe, especially if you're looking for a lighter option. Use 1.5 lb ground turkey and follow the same instructions. The meatballs will be slightly leaner, so you might want to add 1 tbsp olive oil to the meatball mixture to keep them moist. The flavor will be just as rich and satisfying!
How do I prevent the meatballs from breaking apart?
To keep your meatballs intact, handle them gently when browning and avoid overmixing the meatball mixture. Use 1 egg and 0.5 cup breadcrumbs for binding, and roll them into 1-inch balls rather than large patties. Also, don't stir the soup too vigorously once the meatballs are added—they need time to firm up in the broth.
What if I don't have elbow macaroni?
No problem! Any short pasta shape works well—penne, rotini, or even small shells will cook perfectly in the broth. For a different texture, try ditalini or farfalle. Just adjust the cooking time slightly if needed, as some shapes may cook faster. The key is to keep the pasta small so it absorbs all the flavor!
Can I make this soup in a slow cooker?
Yes! Brown the meatballs and sauté the vegetables first, then transfer everything to a 6-quart slow cooker. Add the tomato sauce and beef broth, and cook on low for 6-7 hours or high for 3-4 hours. Stir in the pasta during the last 20 minutes of cooking. The slow cooker method makes this even more hands-off and flavorful!
Why does my soup taste too acidic?
If your soup tastes too tangy, it's likely from the tomato sauce. Balance the acidity by adding a pinch of sugar or 1 tsp honey to sweeten the tomatoes, or stir in ½ cup heavy cream at the end for richness. You can also add a splash of beef broth to dilute the acidity slightly. Taste as you go!
