Mexican Caldo de Pescado | Easy Fish Soup Recipe
Español The nearest beach to Chihuahua, my hometown, was about 12 hours away. I grew up in the desert, far from the ocean, where seafood wasn’t something we enjoyed often. Back then, traveling to the coast was a real adventure, especially since part of the road was nicknamed “the devil’s backbone.”

Even though we didn’t have fresh seafood, we still enjoyed fish from local reservoirs, like catfish (bagre in Spanish) or tilapia from the farms in the Tarahumara mountains. These were the fish I grew up eating, and this Mexican fish soup recipe is one of those dishes that always takes me back to my childhood.
In my region, this soup is lovingly referred to as “caldo de oso”. No, it’s not named after bears. The story goes that workers at the reservoirs ate this soup so frequently that they jokingly called it “el caldo odioso” (the annoying soup) because they were so tired of it. Over time, the name evolved into “caldo de oso”. Funny, right?

Today, I’m thrilled to share this recipe with you. It’s full of natural ingredients, vibrant flavors, and a bit of Mexican tradition. This soup is not only delicious but also comforting for the soul. Let’s dive into the recipe!
Ingredients
Here’s what you’ll need to make this Mexican fish soup:
- 4 tomatoes
- 1 garlic clove
- ½ cup diced onion
- 2 bay leaves
- 3 liters of water
- 2 lbs or 1kg of catfish (bagre) medallions or substitute for sea bass or red snapper.
- 4 carrots, sliced
- 2 zucchinis, sliced
- 1/4 handful of fresh cilantro
- 1 chipotle chili
- ½ teaspoon oregano
- 1 tablespoon salt
- 12 cups water
- Lime wedges for serving

How to Make Mexican Fish Soup
Step 1. Make the soup base: In the blender add the tomatoes, 2 peeled carrot, 1 chipotle chili and the garlic clove and 1 tablespoon salt along with 2 cups of water
Step 2. Sauté the vegetables.
In a large pot, heat a bit of olive oil over medium heat. Add the onion and sauté until it is golden and fragrant.

Step 3. Add water and seasonings.
Pour in the 8 cups of water and add the tomato puree, bay leaves and oregano. Let everything come to a gentle boil over medium heat.


Step 4. Cook the vegetables.
Once the water starts boiling, add the potatoes, carrots, and fresh cilantro. Cook for about 5 minutes, or until the vegetables are slightly tender.


Step 5. Add the fish.
Gently place the catfish medallions into the pot. Reduce the heat to low and simmer for another 12 minutes to allow the fish to cook and the flavors to blend.


Step 6. Adjust the seasoning.
Taste the soup and adjust with salt as needed.
- Serve and enjoy!
Serve the soup hot with lime wedges on the side so everyone can squeeze lime juice to their liking. Pair it with warm corn tortillas or crusty bread for a complete meal.


Tips and Variations
- For a deeper flavor, you can use the fish heads, bones, and scraps. Take them out before serving.
- Swap the catfish for other white fish like sea bass or red snapper if you prefer.
- This soup is perfect as a light main dish or a hearty appetizer.

Frequently Asked Questions
1. What’s the best fish for Mexican fish soup?
White fish like catfish, sea bass, or red snapper work best because they have a mild flavor and firm texture that holds up well during cooking.
2. Can I freeze fish soup?
Yes, fish soup can be frozen! Let it cool completely, then store it in an airtight container for up to 3 months. Thaw in the fridge overnight before reheating.

3. How do I make fish stock?
To make a fish stock, simmer fish heads, bones, and scraps with water, celery, carrots, and onion over low heat for 20-30 minutes. Strain the stock and use it as a base for soups and stews.
4. What sides go well with fish soup?
This soup pairs wonderfully with warm corn tortillas, crusty bread, or even a simple side of rice.

I hope you enjoy making and sharing this comforting Mexican fish soup, full of tradition and flavor. If you loved this recipe, don’t forget to check out more delicious Mexican soups and broths on my blog. ¡Buen provecho!
Caldo de Pescado | Easy Mexican Fish Soup Recipe
Ingredients
- 4 tomatoes
- 1 garlic cloves
- 1/2 cup diced onion
- 2 bay leaves
- 12 cups water
- 2 pounds catfish medallions
- 2 carrots sliced
- 2 zucchinis sliced
- 1/4 handful fresh cilantro
- 1 chipotle chili
- 1/2 tsp oregano
- 1sp tbsp salt
- lime wedges for serving
Instructions
- Step 1. Make the soup base: In the blender add the tomatoes, 2 peeled carrot, 1 chipotle chili and the garlic clove and 1 tablespoon salt along with 2 cups of water
- Sauté the vegetables. In a large pot, heat a bit of olive oil over medium heat. Add the onion and garlic, and sauté until they’re golden and fragrant.
- Add water and seasonings. Pour in the 3 liters of water and add the tomato puree, bay leaves, oregano, and chipotle chili. Let everything come to a gentle boil over medium heat.
- Cook the vegetables. Once the water starts boiling, add the potatoes, carrots, and fresh cilantro. Cook for about 8 minutes, or until the vegetables are slightly tender.
- Add the fish. Gently place the catfish medallions into the pot along with the chopped ancho chili. Reduce the heat to low and simmer for another 12 minutes to allow the fish to cook and the flavors to blend.
- Adjust the seasoning. Taste the soup and adjust with salt as needed.
- Serve and enjoy! Serve the soup hot with lime wedges on the side so everyone can squeeze lime juice to their liking. Pair it with warm corn tortillas or crusty bread for a complete meal.
Delightful- perfect for a cold, rainy day! I added chickpeas for extra fiber and protein, and it was a great addition. Thanks Laura!
What a great idea! Chickpeas pair perfectly with the flavors in this fish soup! so glad you enjoyed it.
So flavorful and perfect for a cozy meal. Definitely making it again! 👏