Sopa de Pescado Puerto Rico: Hearty Fish Soup

Updated November 6, 2026

Total time
1 hr
prep 20 min · cook 40 min
Serves
6
portions as written

Jump to recipe

Sopa de Pescado Puerto Rico: Hearty Fish Soup

Sopa de pescado is a beloved Puerto Rican fish soup made with fresh white fish, root vegetables, and a savory broth seasoned with sofrito and culantro. It’s a comforting, one-pot meal that’s both light and satisfying, perfect for cool evenings or when you need a restorative bowl. The combination of flaky fish, tender vegetables, and aromatic herbs creates a deeply flavorful soup that feels like a warm hug in a bowl.

Ingredients

  • 2 tablespoons (30 ml) olive oil
  • 1 medium onion, chopped (about 1 cup / 150 g)
  • 1 green bell pepper, chopped (about 1 cup / 150 g)
  • 4 cloves garlic, minced
  • 1/2 cup (120 ml) sofrito (store-bought or homemade)
  • 1 teaspoon (5 g) ground cumin
  • 1 teaspoon (5 g) dried oregano
  • 1 bay leaf
  • 8 cups (1.9 L) fish stock or low-sodium chicken broth
  • 2 medium potatoes, peeled and cubed (about 2 cups / 300 g)
  • 2 medium carrots, peeled and sliced (about 1 cup / 130 g)
  • 1 cup (150 g) pumpkin or butternut squash, cubed
  • 1 (14.5 oz / 400 g) can diced tomatoes, undrained
  • 1 1/2 pounds (680 g) firm white fish fillets (such as cod, grouper, or snapper), cut into 2-inch chunks
  • 1/4 cup (15 g) chopped fresh cilantro
  • 2 tablespoons (30 ml) fresh lime juice
  • Salt and black pepper to taste

Instructions

  1. Heat the olive oil in a large Dutch oven or heavy-bottomed pot over medium heat. Add the onion and bell pepper; cook, stirring occasionally, until softened, about 5 minutes.
  2. Add the garlic, sofrito, cumin, oregano, and bay leaf. Cook for 1 minute until fragrant.
  3. Pour in the fish stock or chicken broth, then add the potatoes, carrots, pumpkin, and diced tomatoes with their juices. Bring to a boil, then reduce heat to low, cover, and simmer for 15 minutes, or until the vegetables are almost tender.
  4. Season the fish chunks with salt and pepper. Gently add the fish to the pot, pushing it down into the broth. Cover and simmer for 8–10 minutes, until the fish is opaque and flakes easily with a fork. The fish should reach a safe minimum internal temperature of 145°F (63°C) as measured with a food thermometer.
  5. Remove the bay leaf. Stir in the cilantro and lime juice. Taste and adjust seasoning with salt and pepper.
  6. Serve hot, with rice or crusty bread on the side if desired.

Tips

  • Fish choice: Use firm, mild white fish that holds up well in soup, like cod, grouper, or snapper. Avoid delicate fish like tilapia, which may break apart too easily.
  • Homemade sofrito: If you don’t have store-bought sofrito, blend 1/2 cup each of chopped onion, green pepper, and cilantro with 2 garlic cloves and a pinch of salt. It freezes well in ice cube trays.
  • Don’t overcook the fish: Add the fish at the end and simmer gently. Overcooking makes it tough and dry.
  • Make it ahead: The soup can be made a day ahead, but add the fish when reheating to keep it tender.

Serving Suggestions

Serve this soup as a main course with a side of white rice, avocado slices, and a squeeze of lime. Crusty bread or tostones (fried green plantains) are excellent for dipping. A simple green salad with a citrus vinaigrette balances the richness.

Variations

  • Add shellfish: Include shrimp or crab meat along with the fish for a more decadent version.
  • Spicy kick: Add a chopped jalapeño or a dash of hot sauce (like Puerto Rican pique) with the sofrito.
  • Vegetable swaps: Use yuca, malanga, or sweet potato instead of pumpkin or regular potatoes.
  • Herb twist: Replace cilantro with culantro (recao) if available; it has a stronger, more authentic flavor.

Storage and Reheating

Refrigerate leftovers in an airtight container within 2 hours of cooking. The soup will keep for up to 3 days. For longer storage, freeze without the fish (or with fish, but expect it to be softer) for up to 2 months. Reheat gently on the stovetop over medium-low heat, adding a splash of broth or water to thin if needed. Bring to a simmer until hot throughout, at least 165°F (74°C) for leftovers. Avoid boiling to keep the fish from falling apart.

Frequently Asked Questions

Can I use frozen fish? Yes, frozen fish works well. Thaw it overnight in the refrigerator and pat dry before adding to the soup. Do not thaw at room temperature.

What if I don’t have fish stock? Use low-sodium chicken broth or water with a fish bouillon cube. The flavor will be slightly different but still delicious.

Can I make this soup in a slow cooker? Yes. Sauté the vegetables and sofrito, then transfer to a slow cooker with the broth and vegetables. Cook on low for 4–5 hours, then add the fish and cook for another 30 minutes on high until the fish is cooked through.

Is this soup gluten-free? Yes, as long as your sofrito and broth are gluten-free. Check labels if you have celiac disease.

Can I use other seafood? Absolutely. Mussels, clams, or calamari can be added, but adjust cooking times—shellfish should be added in the last 5 minutes.

Why is my soup bitter? Bitterness can come from overcooked bay leaf or burnt garlic. Remove the bay leaf before serving and avoid browning the garlic too much.

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).