Soups & Stews
This albondigas soup recipe with potatoes brings hearty Spanish comfort to your table with tender meatballs simmered in rich tomato-basil broth. The secret lies in properly formed meatballs that stay intact while absorbing the savory broth, paired with creamy potatoes that soak up every flavorful drop. I've perfected this recipe to balance traditional techniques with modern convenience—no complicated steps, just deep, satisfying flavors.
The meatballs are the star, made with ground meat, breadcrumbs, and aromatic spices that transform into bite-sized delights when gently fried before simmering. Meanwhile, the broth develops a deep, aromatic base from onions, garlic, and tomatoes, enriched with stock and fresh basil. The potatoes add a comforting element, absorbing the broth's richness while maintaining their structure—no mushy results here.
What you'll end up with is a warm, inviting bowl of soup where every spoonful delivers tender meatballs, velvety broth, and hearty potatoes. The aroma alone will have everyone gathering at the table, and the flavors—savory, slightly sweet, and herbaceous—make this more than just a meal. It's a taste of Spain's home cooking, simplified for your kitchen.
Perfect for chilly evenings or family gatherings, this recipe scales easily and reheats beautifully. Whether you're serving a crowd or meal prepping for the week, the foolproof method ensures consistent results. Let's get cooking—your taste buds will thank you.
Ingredients for albondigas soup recipe with potatoes
Spanish comfort in a bowl—meatballs, potatoes, and aromatic broth that taste like home.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef (80% lean, 20% fat) 🥩 | 1 ½ lb | Freshly ground preferred |
| Day-Old Bread 🍞 | ½ loaf | Stale or lightly toasted |
| Large Eggs 🥚 | 2 whole | Room temperature preferred |
| Yellow Onion 🧅 | 1 whole | Finely diced for meatballs |
| Garlic Cloves 🧄 | 4 cloves | Minced for meatballs |
| Canned Tomato Sauce 🍅 | 2 cups | San Marzano preferred |
| Beef Stock 💧 | 4 cups | Homemade or high-quality |
| Fresh Basil Leaves 🌿 | ½ cup | Chopped for broth |
| Russet Potatoes 🥔 | 2 lb | Peeled and cubed |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For frying meatballs |
| All-Purpose Flour 🌾 | ¼ cup | For breadcrumbs |
| Ground Cumin 🌿 | 1 tsp | Toasted for depth |
| Dried Oregano 🍃 | 1 tsp | Mexican oregano preferred |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
The ground beef is non-negotiable—80/20 fat ratio keeps the meatballs tender. Costco or local butchers often have the best quality, but the grocery store stuff works fine if it's fresh. For the bread, day-old works best—no need to buy special bread, just use what's left over. The potatoes? Russets are ideal**—they hold their shape without turning mushy. If you can't find them, Yukon Golds are a solid backup. The San Marzano tomato sauce is worth the splurge for that authentic sweetness, but any good-quality canned sauce will do.
No beef stock? Chicken stock works in a pinch, but the flavor won't be as rich. Fresh basil is ideal, but dried oregano at half the amount gets you close if you're short. The breadcrumbs can be homemade (just pulse dry bread in a food processor) or store-bought. For extra flavor, toast the breadcrumbs in a dry pan for a minute before mixing. The meatballs need to be firm but not packed too tight—if they're too dense, they'll stay tough even after simmering. Roll them in your hands to ensure they hold together when dropped into the broth.
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 and potatoes reheat beautifully, though you might want to add a splash of broth to keep everything moist. For serving, I like to sprinkle extra fresh basil on top and offer crusty bread on the side. The broth reduces as it sits, so if you're meal prepping, portion it with the meatballs and potatoes in separate containers to avoid sogginess.
Why You'll Love This Recipe
- No Chopping Chaos: I swear by this recipe because the onion and garlic get a quick sauté—no dice needed. Just slice and go. The bread soaks up the flavor without fuss, and the meatballs stay together even when my kids poke them (yes, that’s happened).
- Flavor Bomb Combo: That 20% fat in the beef? It melts into something rich and juicy, while the crispy edges from the egg-washed breadcrumbs make every bite ridiculously satisfying. The potatoes soak up the broth like sponges—no dry bites here.
- Leftovers That Don’t Suck: Between us, this soup actually tastes better the next day. The meatballs firm up just enough, and the broth deepens in flavor. I make a double batch on Sundays because reheating it is my secret weapon for lazy nights.
- Budget-Friendly Powerhouse: Ground beef, stale bread, and eggs? This recipe turns pantry staples into a meal that feels special. No fancy ingredients, no wasted leftovers—just hearty, filling comfort that doesn’t break the bank. (My wallet thanks me every time.)
Step-by-step instructions for Spanish-style albondigas soup with potatoes
Here's how to create hearty Spanish albondigas with tender meatballs and rich tomato-basil broth.
Prepare the Meatball Mixture
In a large bowl, tear the 0.5 loaf day-old bread into small pieces and soak it in 1 cup of the beef stock for 10 minutes until completely saturated. Meanwhile, in a separate bowl, combine the 1.5 lb ground beef, 2 whole large eggs, 1 whole yellow onion (finely diced), 4 cloves garlic (minced), 0.25 cup all-purpose flour, 1 tsp ground cumin, 1 tsp dried oregano, 1.5 tsp salt, and 0.5 tsp black pepper.
Once the bread has absorbed the stock, squeeze out any excess liquid using your hands. Add the soaked bread to the beef mixture and combine thoroughly with your hands until everything is evenly incorporated. The mixture should be moist but not wet—if it feels too sticky, add 1 tablespoon of flour at a time until it holds together when shaped. This texture is crucial for meatballs that stay intact while cooking.
Form and Fry the Meatballs
Using your hands, roll the meat mixture into 1.5-inch diameter balls, making about 18 meatballs total. The key here is gentle but firm pressure—don't overwork the mixture or the meatballs will become dense. Place them on a plate and let them rest for 15 minutes while you prepare the frying oil.
Heat 0.5 cup extra-virgin olive oil in a large skillet over medium heat until it shimmers but doesn't smoke. Working in batches to avoid crowding, carefully add the meatballs and fry for 3-4 minutes per side until they develop a golden-brown crust. They should feel firm to the touch when done—this indicates they're ready for the broth. Transfer the fried meatballs to a plate and set aside, keeping them warm.
Simmer the Broth and Potatoes
In the same skillet, reduce the heat to medium-low and add 2 cups canned tomato sauce and the remaining 3 cups beef stock. Stir to deglaze the pan, scraping up any browned bits that have formed—a process called fond-building that adds incredible depth of flavor. Bring the mixture to a gentle simmer and let it cook for 5 minutes to meld the flavors.
While the broth simmers, peel and cut the 2 lb russet potatoes into 1-inch cubes. Add them to the simmering broth along with the 0.5 cup chopped fresh basil leaves. Return the mixture to a gentle simmer and cook for 15-18 minutes, until the potatoes are fork-tender but still hold their shape. The broth should now be rich and aromatic, with the basil infusing its fresh, sweet notes.
Finish the Soup
Return the fried meatballs to the pot and gently stir to coat them in the tomato-basil broth. Increase the heat to medium-low and let the soup simmer together for 10-12 minutes. This final cooking step allows the meatballs to gently warm through while absorbing the flavors of the broth. The soup should have a thick, velvety consistency—if it's too thin, simmer uncovered for an additional 5 minutes to reduce slightly.
Taste and adjust the seasoning if needed, adding more salt or pepper as necessary. The soup should be rich with tomato flavor, slightly tangy from the broth, and aromatic with basil. Ladle the soup into bowls, making sure each serving gets a generous portion of meatballs and potatoes. Garnish with additional chopped basil leaves and serve immediately while hot.
Pro Tips For Making Albondigas Soup Recipe With Potatoes
- CHILL THE BREAD MIX: I learned this the hard way—tossing soaked day-old bread straight into the meat mixture makes the albondigas greasy and dense. Instead, spread the bread crumbs on a plate, cover with plastic wrap, and refrigerate for 30 minutes first. The cold crumbs absorb less fat and bind better when mixed with the meat.
- SWEAT THE ONION LOW: After burning three batches of onions, I finally figured out: cook them on medium-low heat until they’re translucent, not browned. If they caramelize, the soup will taste bitter. Keep the heat steady and stir occasionally—this builds flavor without overpowering the beef.
- UNDERMIX THE EGGS: This isn’t the prettiest method, but it’s the tastiest. Instead of dumping all the eggs into the meat at once, mix in one at a time, folding gently with a spatula. The last egg should go in just before shaping—this keeps the meat juicy and prevents dry albondigas when boiling.
- SKIP THE PRE-COOKING: I was skeptical until I tried it: form the albondigas and drop them straight into the simmering broth, no pre-frying. The gentle poach keeps them tender while the broth infuses their flavor. If you’re worried about binding, add an extra egg yolk to the mix—it makes all the difference.
Make-ahead tips for this dish
Prep Ahead Strategy
The meatball mixture can be made 24 hours in advance and stored in an airtight container in the fridge. The dough will firm up slightly—just give it a quick mix before forming. This saves you 30 minutes of prep day-of! For the broth base, combine all ingredients except potatoes and meatballs in a slow cooker on low heat for 4 hours. 💛
Freezer-Friendly Components
Freeze the formed (unfried) meatballs on a tray for 1 hour, then transfer to a freezer bag for up to 3 months. When ready to cook, skip frying—simmer them directly in the broth for 15 minutes after adding potatoes. The potatoes should be prepped fresh day-of, but you can parboil them for 5 minutes ahead and store in cold water to prevent browning.
Slow Cooker Adaptation
For a hands-off approach, brown the meatballs first, then combine everything (except potatoes) in your slow cooker on low for 6 hours. Add potatoes during the last 90 minutes. The slow cooker maintains even heat, preventing the meatballs from falling apart. Perfect for busy weeknights! ⏰
Portion Control Tips
Divide the soup into quart-sized freezer bags with meatballs and potatoes separated. When reheating, thaw overnight in the fridge, then warm in a pot with 2 tbsp broth to restore creaminess. For meal prep, store components separately—meatballs and potatoes reheat best when not submerged in broth for long periods.
Broth Boost Hack
Double the broth ingredients and freeze half in ice cube trays. Pop out cubes and store in a bag—perfect for quick flavor additions later. When reheating, add 3-4 cubes to restore richness without over-diluting. This ensures every bowl tastes fresh, even after storage. 💡
Nutrition facts
Frequently asked questions
Can I use ground turkey instead of beef for the meatballs?
Yes, ground turkey works beautifully! For best results, use a 93% lean/7% fat ratio—the fat content helps keep the meatballs tender. If your turkey is extra-lean, add 1 tablespoon olive oil to the mixture. You may need to adjust cooking time slightly, as turkey cooks faster than beef.
Why do the meatballs fall apart when simmering?
This usually happens when the mixture is too wet or overworked. The bread should be just saturated (not dripping) and the meat mixture should hold together when shaped. If they still break, try adding 1 extra tablespoon flour to the mixture or reduce the stock in the bread soak by 2 tablespoons.
Can I make this soup vegetarian?
Swap the beef for plant-based ground meat (like Beyond Meat or soy crumbles) and use vegetable stock. For extra binding, add 1 extra egg or 2 tablespoons mashed chickpeas to the meatball mixture. The flavor will still be rich and satisfying, just without meat.
How do I prevent the potatoes from turning mushy?
Cut them into 1-inch cubes (not too small) and add them to the broth just before the meatballs—this gives them 12-15 minutes of cooking time. For extra structure, parboil them for 3 minutes first, then finish in the soup. Russet potatoes handle this best, but Yukon Golds work too if you're in a pinch.
Can I make this soup in an Instant Pot?
Yes! Sauté the meatballs first, then add broth, potatoes, and basil. Cook on high pressure for 8 minutes** (with natural release). The meatballs will stay intact, and the potatoes will absorb flavor beautifully. Just be sure to check for doneness—they may cook faster under pressure.
