Mexican Beef Soup with Vegetables and Tender Beef

Updated November 4, 2026

Total time
3 hr
prep 30 min · cook 2 hr 30 min
Serves
6
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Mexican Beef Soup with Vegetables and Tender Beef

Mexican beef soup, often called caldo de res, is a comforting broth filled with tender beef, corn, potatoes, carrots, and other vegetables. This home-style version builds flavor by gently simmering beef shank with aromatics, then adding the vegetables in stages so they finish tender without falling apart.

Ingredients

  • 3 lb bone-in beef shank, cut into 2-inch pieces (1.36 kg)
  • 12 cups cold water (2.84 L)
  • 1 large white or yellow onion, peeled and quartered (about 300 g)
  • 4 garlic cloves, lightly crushed (12 g)
  • 2 bay leaves (about 1 g)
  • 8 whole black peppercorns (about 2 g)
  • 2 teaspoons fine salt, plus more to taste (10 g)
  • 3 medium carrots, peeled and cut into 1-inch pieces (about 300 g)
  • 1 lb waxy potatoes, such as red or Yukon Gold, cut into 1½-inch chunks (450 g)
  • 1 medium chayote, peeled if desired, pitted, and cut into chunks (about 250 g)
  • 2 ears corn, husked and cut crosswise into thirds (about 500 g)
  • 1 cup trimmed green beans, cut into 2-inch lengths (125 g)
  • 2 medium zucchini, cut into thick half-moons (about 400 g)
  • ½ small green cabbage, cut into 3 wedges (about 450 g)
  • ½ cup chopped fresh cilantro, including tender stems (15 g)
  • 2 limes, cut into wedges (about 120 g)
  • ¼ teaspoon ground black pepper, or to taste (0.5 g)

Instructions

  1. Prepare the ingredients. Rinse the beef under cool running water only if needed to remove bone fragments, then pat it dry. Cut the vegetables as listed, keeping the potatoes and carrots in generous chunks so they hold their shape during simmering. If your beef is in larger pieces, ask the butcher to cut it through the bone or use a sturdy cleaver; bone-in shank lends the broth body and a deep beef flavor.
  2. Start the broth. Put the beef in a large, heavy soup pot and add the cold water, onion, garlic, bay leaves, peppercorns, and salt. Bring it to a gentle boil over medium-high heat, which should take about 10 minutes. As foam rises, skim it off with a spoon for a clearer broth. Once boiling, lower the heat so the liquid simmers steadily but does not bubble hard.
  3. Simmer the beef until tender. Partly cover the pot and simmer for 1 hour 45 minutes, checking occasionally that the liquid is not boiling rapidly. Turn the beef pieces once or twice so they cook evenly. Add a little hot water if necessary to keep the meat mostly submerged. Check the thickest piece with a food thermometer: USDA FSIS lists 145°F (63°C) with a 3-minute rest as the safe minimum for whole cuts of beef. The shank should continue simmering until it is fork-tender, which can take longer depending on the size and age of the pieces.
  4. Add the firm vegetables. Stir in the carrots, potatoes, and chayote. Keep the broth at a gentle simmer for 12 minutes. The vegetables should be submerged as much as possible; press them gently into the broth with a spoon rather than stirring vigorously, which can break up the potatoes and loosen meat from the bones too soon.
  5. Add the corn and green beans. Add the corn pieces and green beans, then simmer for 8 minutes. If the pot is very full, rotate the corn once so it cooks evenly. Taste a small spoonful of broth and add a little more salt if needed, remembering that the final lime and cilantro will brighten the overall flavor.
  6. Finish with the quick-cooking vegetables. Add the zucchini and cabbage wedges. Simmer gently for 8 to 10 minutes, until a knife slides into the potatoes and carrots easily and the cabbage is tender but still holds its shape. Remove the bay leaves and discard them. If the beef has not yet become fork-tender, keep simmering and check it every 10 minutes; the vegetables can be lifted out temporarily if they are done first.
  7. Rest and serve. Turn off the heat and let the soup stand for 5 minutes. Check the seasoning and add ground black pepper or more salt as needed. Ladle broth, beef, and a mix of vegetables into warm bowls, sprinkle with cilantro, and serve with lime wedges for squeezing at the table.

Tips

  • Choose a collagen-rich cut. Bone-in beef shank is a good choice because its connective tissue softens during the long simmer and gives the broth a fuller texture. Beef short ribs or chuck can also work; boneless chuck is convenient but makes a somewhat less gelatinous broth. Cut any substitute into large chunks so it stays substantial.
  • Keep the simmer gentle. A hard boil can make the broth cloudy and cause the vegetables to break apart. Look for occasional small bubbles at the surface. If the soup starts boiling rapidly, lower the heat and move the pot to a smaller burner.
  • Use chayote if you can find it, but do not let it hold up dinner. Chayote is a mild, crisp squash commonly used in Mexican soups. If it is unavailable, use an extra potato or a small piece of peeled, firm summer squash; the result will still be delicious, though less crisp and subtly different in flavor.
  • Adjust salt at the end. The broth reduces slightly as it simmers, and beef can vary in how much seasoning it needs. Start with the listed amount, taste after the vegetables have cooked, and finish with lime at the table rather than adding lots of citrus to the whole pot.

Serving Suggestions

Serve this soup hot in wide, deep bowls so each person gets broth, beef, corn, and several kinds of vegetables. Warm corn tortillas are useful for scooping up the tender vegetables and meat; rice on the side makes the meal more filling without changing the flavor of the broth. Set out lime wedges, extra chopped cilantro, and finely chopped white onion so diners can season their own bowls.

A simple side of sliced radishes or a crisp green salad adds freshness alongside the rich broth. If you like a little heat, offer salsa or sliced fresh chile separately instead of adding it to the whole pot. That way the soup stays mild for anyone who prefers it that way, and each bowl can be adjusted at the table.

Variations

Caldo de res has many regional and family versions, so the vegetables and seasoning vary. Some cooks include celery, green cabbage in smaller pieces, or a few tomatoes; others keep the broth especially simple to let the beef and vegetables stand out. For a tomato note, add one chopped medium tomato (about 120 g) with the onion and garlic at the beginning, or stir in ½ cup (120 ml) tomato sauce. Either option will make the broth a little sweeter and less clear.

For a different vegetable mix, replace the green beans with 1 cup (150 g) of corn kernels, or use peeled, cubed squash in place of the zucchini. Add quick-cooking squash during the last 10 minutes so it does not dissolve into the soup. If you want a lighter bowl, use less beef and add another potato or carrot; for a meatier one, use 4 lb (1.8 kg) of shank and add 2 cups (475 ml) extra water, then adjust the salt after simmering.

To make the broth more aromatic, add 1 teaspoon (2 g) dried Mexican oregano with the vegetables, or serve it on the side for each person to add. Mexican oregano has a citrusy, slightly earthy character; regular Mediterranean oregano is a practical substitute, though it tastes more herbaceous. A small pinch of ground cumin is another optional addition, but it changes the profile, so use it sparingly rather than treating it as essential.

Storage and Reheating

Cool the soup promptly and refrigerate it within 2 hours of cooking. For quicker cooling, divide it among shallow containers rather than leaving the full pot on the counter. Store covered in the refrigerator for 3 to 4 days. The broth may become gelatinous when cold because of the beef shank; that is normal and it will loosen as the soup heats.

For longer storage, freeze the soup in airtight, freezer-safe containers for up to 3 months. Leave a little room at the top for expansion. Potatoes and zucchini can become softer after freezing and thawing, so if texture matters most, freeze the broth and beef separately from freshly cooked vegetables. Thaw frozen soup in the refrigerator overnight or reheat it directly from frozen over low heat, stirring occasionally.

Reheat only the portion you plan to eat in a covered saucepan, stirring gently and bringing it to a simmer. Check with a food thermometer and reheat leftovers to 165°F (74°C), as recommended by USDA FSIS. Add a splash of water if the broth has reduced, and finish with fresh lime and cilantro after reheating rather than cooking those garnishes in the pot.

Frequently Asked Questions

What cut of beef is best for Mexican beef soup?
Bone-in beef shank is especially suitable because it becomes tender during a long simmer and adds richness to the broth. Short ribs and chuck are useful alternatives. Whichever cut you choose, keep the pieces large and allow extra simmering time if they are not fork-tender when the vegetables are ready.

Can I make this soup without chayote?
Yes. Chayote is optional and can be replaced with another potato, carrot, or a firm summer squash. The soup will still have plenty of vegetables; the substitution simply changes the texture and adds a slightly different flavor. Add softer squash near the end so it does not overcook.

Why is my broth cloudy?
A rolling boil can break fat and fine particles into the broth, making it look cloudy. The soup is still fine to eat. Next time, skim foam as it rises and keep the pot at a gentle simmer rather than a hard boil. Avoid frequent vigorous stirring, especially after the vegetables go in.

Can I make Mexican beef soup ahead?
Yes. The broth and beef can be cooked a day ahead and refrigerated, then gently reheated while you cook the vegetables in it. This keeps the vegetables fresher in texture. If you make the entire soup ahead, expect the potatoes and zucchini to soften slightly as they sit in the broth.

Can I make this recipe in a slow cooker?
Yes, though the vegetables need to be added in stages to avoid overcooking. Cook the beef with the water, onion, garlic, bay, peppercorns, and salt until tender, about 8 to 9 hours on low or 4 to 5 hours on high, depending on your cooker and cut. Add firm vegetables during the last 2 to 3 hours and zucchini and cabbage during the final 45 to 60 minutes. Check that the beef reaches the safe temperature described in the instructions and is tender before serving.

How do I keep the vegetables from turning mushy?
Cut them into large pieces and add them according to how long they take to cook: potatoes, carrots, and chayote first; corn and green beans next; zucchini and cabbage near the end. Simmer gently, test with a knife, and stop cooking as soon as the vegetables are tender. If the beef needs more time, remove vegetables that are already done and return them to the pot just before serving.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).