This post may contain affiliate links. See my disclosure policy.
This Albondigas Soup (Mexican Meatball Soup) is made with tender beef-and-turkey meatballs filled with rice and fresh herbs, simmered alongside vegetables in a flavorful roasted tomato broth. It’s one of my most cherished childhood recipes and a soup I love making from scratch.

Albondigas means “meatballs” in Spanish, and caldo de albondigas is a Mexican meatball soup made with tender meatballs and vegetables simmered in a flavorful broth. It’s the kind of comforting, homemade cooking I love about my caldo de pollo (Mexican chicken soup) and caldo de res (Mexican beef soup), only here, the meatballs are the star. There are countless family variations, but rice and fresh herbs, particularly mint, are common additions.
This soup goes all the way back to my grade school years, when our live-in nanny, America, made it at least twice a month. My mom worked full-time, leaving early in the morning and getting home late at night, so America became an important maternal figure in my daily life. Unfortunately, it took me a couple of decades to fully appreciate just how much her kindness and love meant to me and, by then, we’d lost touch. In a way, making and sharing this albondigas soup recipe is how I keep her memory alive.
My version isn’t particularly quick, but then again, hers wasn’t either. Between roasting the tomatoes, slowly cooking the onions, shaping the meatballs, and letting everything simmer, you should plan on about two and a half hours — no, this isn’t the soup I make when dinner needs to be on the table in 30 minutes. That being said, much of that time is spent waiting for the ingredients to do their thing, and the extra effort that goes into making the roasted tomato broth is 100% worth it.
Quick Look: Albondigas Soup
- Method: Start by roasting Roma tomatoes and whole garlic cloves in the oven, then slowly cook the onions until soft and golden. Once finished, blend everything to make the deeply flavorful base for our broth. It’s a little extra work, but I wouldn’t make this soup any other way.
- Flavor: The roasted tomato broth is light but full of savory flavor, with a little tang from fresh lime juice. The meatballs are packed with plenty of fresh herbs, especially mint. It may seem like a lot at first, but it’s exactly what makes the albondigas so delicious.
- Prep and cook time: Plan on about 2½ hours from start to finish.
- Top Tip: Rice is key to the meatballs’ overall texture. For this recipe, we’re starting with 3/4 cup of uncooked long-grain white rice, partially cooking it, then measuring out just 1 cup to mix into the meatballs. which you can finish cooking separately for another use.
- Good to know: Add the shaped meatballs directly to the gently simmering soup. There’s no need to brown or bake them beforehand. Just give them a little time to firm up before stirring.
Table of Contents
What Readers Are Saying
“It does take a lot of time to make, but the payoff is great.”
– Andrea K.
“You were so right about the mint!”
– Marina McLeod
“Man this recipe is soooo good. Mexican husband approves!”
– Brianne
Ingredients and Substitutions
There are quite a few ingredients in this recipe, but most are divided between the roasted tomato broth and the meatballs. Nothing is particularly complicated, although I wouldn’t skimp on the fresh herbs or skip roasting the tomatoes unless you’re really short on time.

Soup Ingredients + Substitutions
- Roma tomatoes and garlic: Roasting eight Roma tomatoes and five whole garlic cloves brings out their natural sweetness and gives the broth a deeper, more developed flavor. It’s the same reason I roast the tomatoes in my creamy roasted red pepper and tomato soup. Short on time? You can substitute one 28-ounce can of crushed tomatoes. Instead of roasting the garlic, mince the five cloves and add them during the last 30-60 seconds of cooking the onions, just until fragrant. Then blend everything with the canned tomatoes as directed. The flavor won’t be quite the same, but it’s a reasonable shortcut.
- Yellow onions: We’re using two large onions for the soup, but they serve different purposes. One is slowly cooked until soft and golden, then blended with the roasted tomatoes. The other is sautéed with the carrots and celery. Don’t rush the first onion. Those extra minutes add a surprising amount of flavor to the broth.
- Carrots, celery, and potatoes: Together with the onion, the carrots and celery form a classic mirepoix, which gives the broth a good foundation of flavor. The potatoes make the soup a little heartier, and any variety will work. Just cut them into evenly sized pieces so they cook at the same rate.
- Chicken broth: Low-sodium chicken broth is my first choice because it adds savory flavor while giving us more control over the salt. If you have some homemade chicken stock tucked away in the freezer, even better. Water works, too, but you’ll need to pay a little more attention to the seasoning.
- Fresh cilantro and lime juice: Both are stirred in at the very end. The lime adds just enough acidity to brighten the broth without making it taste noticeably sour. Keep a few extra lime wedges nearby for serving.
Albondigas Ingredients + Substitutions
- Ground beef and ground turkey: For this recipe, we’re using one pound of each. The beef adds richness, while the turkey keeps the meatballs a little lighter. You can use all ground beef if you prefer, but I’d stick with lean meat to avoid ending up with a greasy broth.
- Yellow onion and garlic: Finely minced onion and garlic add flavor and moisture to the meatballs. Make sure the onion is chopped really small. Large pieces make the meatballs harder to shape and more likely to fall apart while cooking.
- Long-grain white rice: Rice takes the place of breadcrumbs in these meatballs. For this recipe, we partially cook the rice before mixing it into the meat, using exactly 1 cup of the partially cooked rice. I’ll explain why this matters in the next section.
- Fresh parsley, mint, and cilantro: This is where so much of the meatballs’ flavor comes from. The recipe calls for a generous amount of all three, especially mint. Half a cup of packed fresh mint might seem excessive, but trust me, it isn’t. I wouldn’t substitute dried herbs here. The fresh flavor is a big part of what makes these albondigas so good.
- Eggs: Three beaten eggs help bind the two pounds of ground meat, rice, and herbs together.
- Salt, black pepper, and cayenne: The meatballs are well-seasoned but not particularly spicy. Cayenne adds a little heat, so feel free to leave it out if you prefer a milder soup.

Why I Partially Cook the Rice
Rice is a traditional addition to many albondigas recipes, taking the place of breadcrumbs (which I use in my classic meatball recipe) and giving the meatballs their characteristic texture. Some recipes use uncooked rice; others use fully cooked rice. For this recipe, I prefer something in between.
Here, we’re partially cooking the long-grain white rice until the grains have softened on the outside but are still a little firm in the center. This gives the rice a head start so it can finish cooking inside the meatballs as they simmer in the broth. The result is tender meatballs with little bits of rice throughout.
Remember: Start with 3/4 cup uncooked rice, but measure out only 1 cup after partially cooking it. Any remaining rice can be saved for another use. None goes directly into the soup.
How to Make Albondigas Soup

- Roast the Tomatoes and Garlic. Preheat your oven to 425°F and arrange the halved Roma tomatoes and whole garlic cloves on a large rimmed baking sheet. Give everything a little room, using a second baking sheet if necessary, and arrange the tomatoes cut-side up. Drizzle with 1 tablespoon of olive oil, season with salt and black pepper, and roast for 35-45 minutes, until the tomatoes are soft, juicy, and starting to brown around the edges. Keep an eye on the garlic and pull it out early if it starts getting too dark. We want roasted garlic, not burnt garlic.

- Partially Cook the Rice. While the tomatoes roast, rinse 3/4 cup of uncooked long-grain white rice under cold water, then add it to a small saucepan with about 3 cups of water. Bring it to a boil, reduce the heat, and simmer until the grains have started to soften but are still a little firm in the center. Check every 5 minutes so you don’t accidentally cook it all the way through. Once it’s ready, drain and rinse under cold water to stop the cooking process. Measure out 1 cup of the partially cooked rice for the meatballs and save any extra for another use.

- Slowly Cook the Onions. While the tomatoes are still roasting, heat the remaining tablespoon of olive oil in a skillet over medium heat. Add the chopped onion and cook for about 20-25 minutes, stirring occasionally, until it’s very soft and golden brown, with a little caramelization around the edges. Don’t rush this part by turning up the heat. The goal is to bring out the onion’s natural sweetness without burning it.

- Blend the Tomato Base. Once the tomatoes and garlic have finished roasting, let them cool slightly before transferring them to a blender or food processor. Add the cooked onions and any juices left on the baking sheet, then blend until mostly smooth. I like to leave a little texture rather than making a completely smooth puree. The mixture should be thick and a beautiful orange-red color. Set it aside while you prepare the meatballs.

- Prepare the Meatball Mixture. In a large mixing bowl, combine the ground beef, ground turkey, finely minced onion, garlic, 1 cup of partially cooked rice, fresh parsley, mint, cilantro, salt, black pepper, optional cayenne, and beaten eggs. Use your hands to gently mix everything together until evenly combined. Be careful not to overmix the meat, which can make the finished meatballs dense.

- Shape the Meatballs. Using about 2-3 tablespoons of the meat mixture for each meatball, gently roll the mixture into balls and arrange them on a large tray or plate. Try to keep them relatively uniform so they’ll cook at the same rate. If the mixture starts sticking to your hands, a little water on your palms makes shaping them much easier. Once all the meatballs are formed, pop them in the refrigerator while you prepare the soup. Note: It’s important to shape the entire batch before you start adding them to the broth, rather than trying to roll them as you go.

- Cook the Soup Vegetables. Heat the olive oil in a large stockpot or Dutch oven over medium heat. Add the chopped onion and cook for about 5 minutes, until it starts to soften. Next, stir in the carrots and celery and continue cooking for another 5-7 minutes, stirring occasionally. Finally, add the chopped potatoes and cook for 3-4 minutes more. We’re not trying to cook the vegetables completely at this point, just giving them a head start before adding the broth.

- Add the Roasted Tomato Base and Broth. Pour the blended tomato mixture into the pot with the vegetables and stir everything together. Let it cook for 3-4 minutes before adding the chicken broth or water. You’ll notice the broth takes on a beautiful orange-red color from the roasted tomatoes. Bring everything to a boil, then reduce the heat and let it simmer gently for about 15 minutes. This gives the vegetables a chance to soften and the flavors a little time to come together before adding the meatballs.

- Gently Simmer the Meatballs. Carefully lower them into the gently simmering soup, one at a time, using a large spoon or ladle. Resist the temptation to stir right away. The meatballs are still delicate and need a little time to firm up before being moved around. Once they’re all in the pot, let the soup return to a gentle simmer, cover, and cook over low heat for 25-30 minutes. Avoid a rolling boil, and stir carefully only after the meatballs have had time to set. They’re ready when the rice inside is tender, the vegetables are cooked through, and the meatballs reach an internal temperature of 165°F (or 160°F if using all ground beef).

- Finish with Fresh Cilantro and Lime. Once the meatballs and vegetables are fully cooked, stir in the chopped fresh cilantro and lime juice. Give the broth a taste and adjust the salt, pepper, or lime juice as needed. That little bit of lime at the end really helps brighten up the savory roasted tomato broth. Ladle the soup into bowls, making sure everyone gets plenty of meatballs and vegetables, and serve with extra lime wedges on the side.
Recipe Tips
- Use a large pot. This recipe makes a BIG batch of soup. Between the 10 cups of broth, roasted tomato base, vegetables, and meatballs, you’ll need a roomy stockpot or Dutch oven. An 8-quart pot may be a tight fit, so use something larger if you have one.
- Make the most of the roasting time. Once the tomatoes and garlic are in the oven, there’s no need to stand around waiting. Use that time to partially cook the rice and slowly cook the onions. These steps can happen at the same time, which saves quite a bit of waiting around.
- Don’t cut the vegetables too small. The carrots and potatoes spend a good amount of time simmering in the broth, so I recommend keeping them in fairly medium to large, evenly sized pieces. This helps them hold their shape without turning to mush by the time the meatballs are finished cooking.
- Shape all the meatballs before adding them to the soup. Aim for about 2-3 tablespoons of mixture per meatball, and keep them relatively uniform in size. Once shaped, refrigerate them while you get the soup ready. The last thing you want is to be frantically rolling meatballs while the first batch is already cooking.
- Keep the soup at a gentle simmer. This is probably my most important tip. The meatballs are quite delicate when they first go into the broth, so resist the temptation to stir them right away. Let them firm up before moving them around, and avoid a rolling boil that could cause them to break apart.
Make Ahead Instructions
You can prepare several components ahead of time without having to cook the entire pot of soup.
- Roasted tomato base: This is probably the biggest time-saver. Roast the tomatoes and garlic, cook the onions, and blend everything together as directed. Refrigerate the cooled tomato mixture in an airtight container for up to 2 days, then add it to the soup when you’re ready to cook.
- Vegetables: The onions, carrots, and celery can all be chopped a day ahead and stored in separate airtight containers in the refrigerator. I’d wait to cut the potatoes until you’re ready to cook so they don’t discolor.
- Meatballs: Shape the meatballs up to 24 hours in advance and refrigerate them, covered, until you’re ready to cook. Partially cook the rice and cool it promptly before preparing the meat mixture. You can also freeze the shaped, uncooked meatballs for up to 3 months. Arrange them on a parchment-lined baking sheet, freeze until solid, then transfer to a freezer-safe container or bag. Thaw overnight in the refrigerator before adding them to the soup.

What to Serve with Albondigas Soup
Between the meatballs, rice, potatoes, and vegetables, this soup is pretty much a complete meal on its own. I don’t think it needs much else, although a few extras certainly never hurt.
Fresh cilantro and lime wedges are my must-haves. A little sliced avocado, crumbled tortilla chips, or hot sauce is also delicious, especially if everyone likes to customize their own bowl.
If you’re looking for something to serve alongside it, here are a few favorites:
- Warm corn tortillas: Probably the simplest option, and perfect for enjoying with the flavorful tomato broth.
- Mexican cornbread: A slightly sweet, cheesy cornbread with jalapeños is especially good alongside this savory soup.
- Chips, salsa, and guacamole: If you’re serving this for a crowd, put out some tortilla chips with homemade salsa and guacamole while the soup finishes cooking.
Albondigas Soup Recipe FAQs
The most common problem is stirring the meatballs too soon or letting the broth boil too vigorously. These meatballs are delicate when they first go into the soup, especially with all that rice and fresh herbs mixed in. Make sure the onion is finely minced, gently mix the meat until everything is evenly combined, and refrigerate the shaped meatballs while preparing the soup. Once they’re in the pot, give them time to firm up before stirring.
Yes, many albondigas recipes use uncooked rice successfully, but this particular recipe was developed with partially cooked rice. Giving the rice a head start means it can finish cooking inside the meatballs without needing as much time in the broth. If you’re making this version, I recommend sticking with the partially cooked rice for the intended texture and cooking time.
Nope! There’s no need to brown or bake the meatballs beforehand. They go directly into the gently simmering broth, where they cook through and absorb some of that delicious roasted tomato flavor.
For the beef-and-turkey meatballs in this recipe, the internal temperature should reach 165°F. If you’re using all ground beef, cook them to 160°F. This usually takes about 25-30 minutes, depending on their size. I also recommend cutting one open to check that the rice in the center is tender and fully cooked.
Not particularly. Like my Italian wedding soup, this is meant to be a brothy soup with plenty of meatballs and vegetables, not a thick stew. The roasted tomato base gives the broth extra flavor and a beautiful reddish-orange color, but it should still be light enough to ladle easily.
Storage and Reheating
This recipe makes a generous pot of soup, which means there’s a good chance you’ll have leftovers.
- Refrigerator: Store in airtight containers in the refrigerator for up to 3-4 days.
- Freezer: Freeze the soup in individual portions or larger freezer-safe containers for up to 3 months for best quality. Leave a little room at the top for the broth to expand. Keep in mind that the potatoes may have a softer texture once thawed, but the meatballs should hold up well.
- Reheating: Thaw frozen soup overnight in the refrigerator, then reheat on the stovetop until the broth comes to a boil and the meatballs are heated through to 165°F. Stir carefully so you don’t break apart the meatballs. You can also reheat individual portions in the microwave, covering and stirring gently between intervals until thoroughly heated.
More Mexican Soup Recipes
If you make this albondigas soup recipe, I’d love to hear from you! Please leave a star rating and a comment below to let me know what you think. And if you grew up eating caldo de albondigas, I’d love to hear how your family makes it. It’s always fun hearing about the little differences that make each family’s version their own.

Albondigas Soup Recipe (Mexican Meatball Soup)
Ingredients
For the Rice
- ¾ cup uncooked long-grain white rice
For the Roasted Tomato Base
- 8 Roma tomatoes, halved lengthwise
- 5 whole garlic cloves, peeled
- 2 tablespoons olive oil, divided
- 1 teaspoon salt
- ½ teaspoon fresh ground black pepper
- 1 large yellow onion, chopped
For the Meatballs
- 1 pound lean ground beef
- 1 pound ground turkey, (or additional lean ground beef)
- 1 small yellow onion, finely minced
- 4 cloves garlic, minced
- ½ cup fresh mint, finely minced and packed
- ⅓ cup fresh parsley, finely minced and packed
- ⅓ cup fresh cilantro, finely minced and packed
- 2 teaspoons salt
- 1 teaspoon fresh ground black pepper
- ½ teaspoon cayenne pepper, optional
- 3 large eggs, beaten
For the Soup
- 1 tablespoon olive oil
- 1 large yellow onion, chopped
- 6 large carrots, chopped
- 4 celery ribs, chopped
- 2 large russet potatoes, chopped (or any other variety)
- 10 cups low-sodium chicken broth, or water
- ½ cup fresh cilantro, chopped
- 2 tablespoons fresh lime juice, plus more for serving
Instructions
- Roast the Tomatoes and Garlic. Preheat the oven to 425°F. Arrange the halved Roma tomatoes, cut-side up, and whole garlic cloves on a large rimmed baking sheet. Use a second baking sheet if needed to avoid overcrowding. Drizzle with 1 tablespoon of olive oil and season with salt and black pepper. Roast for 35-45 minutes, until the tomatoes are softened and lightly browned. Check the garlic periodically and remove it early if it begins to brown too much.8 Roma tomatoes, 5 whole garlic cloves, 1 teaspoon salt, ½ teaspoon fresh ground black pepper, 1 tablespoons olive oil
- Partially Cook the Rice. While the tomatoes roast, rinse 3/4 cup of uncooked long-grain white rice under cold water. Transfer to a small saucepan with approximately 3 cups of water and bring to a boil. Reduce the heat and simmer, checking every 3-5 minutes, until the rice is beginning to soften but remains firm in the center. Drain and rinse with cold water to stop the cooking process. Measure out 1 cup of the partially cooked rice for the meatballs. Reserve any remaining rice for another use; do not add it to the soup.¾ cup uncooked long-grain white rice
- Cook the Onion for the Tomato Base. While the tomatoes are roasting, heat the remaining 1 tablespoon of olive oil for the tomato base in a large skillet over medium heat. Add the chopped large onion and cook for 20-25 minutes, stirring frequently, until very soft and golden brown. Adjust the heat as needed to prevent burning.1 tablespoons olive oil, 1 large yellow onion
- Blend the Roasted Tomato Base. Allow the roasted tomatoes and garlic to cool slightly. Transfer them to a blender or food processor, including any juices from the baking sheet. Add the cooked onion and blend until mostly smooth, leaving a little texture. Set aside.
- Combine the Meatball Ingredients. In a large mixing bowl, add the ground beef, ground turkey, minced small onion, garlic, 1 cup of partially cooked rice, parsley, mint, cilantro, salt, black pepper, optional cayenne, and beaten eggs. Using your hands, gently combine the ingredients until evenly distributed. Avoid overmixing, which can make the meatballs dense.1 pound lean ground beef, 1 pound ground turkey, 1 small yellow onion, 4 cloves garlic, ½ cup fresh mint, ⅓ cup fresh parsley, ⅓ cup fresh cilantro, 2 teaspoons salt, 1 teaspoon fresh ground black pepper, ½ teaspoon cayenne pepper, 3 large eggs
- Shape and Refrigerate the Meatballs. Portion the meat mixture into approximately 2-3 tablespoon amounts and roll into evenly sized meatballs. Lightly moisten your hands with water if the mixture becomes sticky. Arrange the meatballs on a tray or large plate and refrigerate while preparing the soup. Finish shaping the entire batch before beginning to cook the meatballs.
- Sauté the Soup Vegetables. Heat 1 tablespoon of olive oil in a large stockpot or Dutch oven over medium heat. Add the remaining chopped large onion and cook for about 5 minutes, until softened. Add the carrots and celery and continue cooking for 5-7 minutes, stirring occasionally. Stir in the chopped potatoes and cook for an additional 3-4 minutes.1 tablespoon olive oil, 1 large yellow onion, 6 large carrots, 4 celery ribs, 2 large russet potatoes
- Add the Tomato Base and Broth. Pour the blended roasted tomato mixture into the stockpot and stir to coat the vegetables. Cook for 3-4 minutes, stirring occasionally. Add the 10 cups of chicken broth or water and bring to a boil. Reduce the heat to maintain a gentle simmer and cook for approximately 15 minutes.10 cups low-sodium chicken broth
- Simmer the Meatballs. Carefully lower the chilled meatballs into the gently simmering soup, one at a time. Allow the soup to return to a gentle simmer without stirring immediately, giving the meatballs time to firm up. Cover and cook over low heat for approximately 25-30 minutes, stirring gently only after the meatballs have set. The meatballs are ready when the rice inside is tender and the internal temperature reaches 165°F for the beef-and-turkey mixture, or 160°F if using all ground beef.
- Finish and Serve. Remove the pot from the heat and stir in the 1/2 cup of chopped fresh cilantro and 2 tablespoons of fresh lime juice. Taste and adjust the salt, pepper, or lime juice as needed. Ladle the soup into individual bowls, distributing the meatballs and vegetables evenly. Serve with additional lime wedges, if desired.½ cup fresh cilantro, 2 tablespoons fresh lime juice
Notes
- Partially cooked rice: Start with 3/4 cup uncooked rice, but use only 1 cup after partially cooking it. The rice should be softened on the outside and slightly firm in the center. Any remaining rice should be finished cooking separately before eating, not added to the soup.
- Fresh herbs: Don’t skimp on the mint! It may seem like a lot, but the fresh mint, parsley, and cilantro are an important part of what gives these meatballs their flavor.
- Keep the meatballs intact: There’s no need to brown or bake them first. Add the shaped meatballs directly to the gently simmering soup and avoid stirring until they’ve had time to firm up.
- Use a large stockpot: This recipe makes a generous amount of soup. An 8-quart pot may be crowded once all the ingredients are added, so use a larger stockpot if available.
- Make ahead: The uncooked meatballs can be shaped up to 24 hours in advance and refrigerated promptly in a covered container. For longer storage, freeze on a parchment-lined tray until solid, then transfer to a freezer-safe container for up to 3 months. Thaw overnight in the refrigerator before cooking.
Explore More with AI
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.


















Thanks for the Mexican Meatball Soup recipe.
very good. so much flavor. will make again.
Amazing!! My soup is simmering now with the meatballs! Smells amazing! We can’t wait to try it!!
Can this be made in an instapot? ThanksE
Man this recipe is soooo good. Mexican husband approves!
Thanks for the kind feedback Brianne 🙂
Delicious soup! Well over 1.5 hours total for me to make everything from scratch, but had a very satisfying result.
I made this last night with 2 adjustments. I used 1/2 cups of uncooked rice instead of the cooked rice and I added one whole fresh jalapeño and put it in the blender with the roasted tomatoes onion and garlic. Kept the rest as written. Sooooo good. A true happy meal. ❤️
wonderful soup
Wow, completely obsessed with this recipe. I am Mexican and grow up eating albóndiga soap but never thought to add the tomato broth with the caramelized onion. As soon as I finish posting this comment I’ll be on my way to the grocery store. Cannot wait to try this recipe. Very well thought out and organized dialogue. You rock Jessica!
Really tasty, thank you for the recipe.