Vietnamese Sweet and Sour Soup

Steaming Canh Chua with white fish, pineapple, and fresh herbs in a vibrant broth. Pin it
Steaming Canh Chua with white fish, pineapple, and fresh herbs in a vibrant broth. | cookedandcozy.com

This Vietnamese classic brings together the perfect harmony of sweet, sour, and savory flavors. Tender white fish and shrimp simmer alongside pineapple chunks, tomatoes, and okra in a fragrant tamarind-based broth. Fresh herbs like cilantro, Thai basil, and rice paddy herb add layers of aroma, while lemongrass and garlic provide depth. The result is a light yet satisfying soup that's traditionally enjoyed with steamed jasmine rice. The balance between tamarind's natural acidity and palm sugar's sweetness creates that signature Canh Chora flavor profile Vietnamese cuisine is known for.

The first time I tasted Canh Chua was at my friend Lan's house during a rainy afternoon. Her kitchen filled with this incredible aroma—tamarind, lemongrass, and something distinctly Vietnamese that made my mouth water before I even saw the pot. She laughed watching me hover over the stove, explaining that the secret is in the balance of sweet and sour. That bowl changed everything I thought about soup.

Last winter, I made a huge pot for my family when everyone was fighting colds. My dad, who's usually skeptical of anything too sour, went back for thirds. The steam rising from bowls, the vibrant colors against the gray day—it became an instant comfort food request. Now it's our go-to when we need something that feels like a warm hug.

Ingredients

  • White fish fillets (400g): Catfish holds up beautifully but any firm white fish works—cut into chunks so they cook evenly and stay tender
  • Medium shrimp (150g): Optional but adds that sweet seafood layer—peeled and deveined saves time
  • Pineapple (200g): Fresh is non-negotiable here, canned makes it taste flat—bite-sized pieces break down slightly and infuse the broth
  • Tomatoes (2 medium): Wedges add color and acidity—they soften into the soup creating that signature richness
  • Bean sprouts (100g): Add these last for crunch—rinse well and pat dry to avoid watering down the broth
  • Okra (1 small, optional): Sliced diagonally, it thickens the soup slightly and adds this lovely texture
  • Celery (2 stalks): Diagonal slices look pretty and add subtle crunch throughout
  • Onion (1 small): Sliced thin, it sweetens as it cooks and creates a savory base
  • Birds eye chilies (2, optional): Slice them if you want heat—leave whole for milder warmth
  • Lemongrass (2 stalks): Bruise them with the back of your knife to release those citrusy oils before cutting
  • Garlic (3 cloves): Minced fine so it melts into the broth without overpowering
  • Fresh cilantro (1 bunch): Chopped, added at the end so it stays bright and fragrant
  • Thai basil or rice paddy herb (1 bunch): This is essential—that distinctive anise-like flavor makes it authentically Vietnamese
  • Spring onions (2 stalks): Sliced for that fresh onion bite right before serving
  • Sawtooth herb (handful, optional): If you can find it at an Asian market, it adds this peppery, cilantro-like kick
  • Water or fish stock (1.2 liters): Stock adds depth but water works if you build flavor with good fish sauce
  • Fish sauce (2 tablespoons): The salty backbone—taste as you go, brands vary wildly in intensity
  • Tamarind paste (1 tablespoon): This is the soul of the soup—dissolve it in a bit of warm water first to avoid clumps
  • Sugar (1 tablespoon): Balances the tamarind's acidity—adjust depending on your pineapple's sweetness
  • Vegetable oil (1 tablespoon): For sautéing the aromatics—neutral is best
  • Salt and black pepper: Finish seasoning—go light on salt since fish sauce is already salty

Instructions

Build the aromatic base:
Heat oil in your large pot over medium heat, add garlic and onions, cook until they're fragrant and starting to turn translucent—about 2 minutes of patience here pays off.
Add the fragrance:
Toss in lemongrass and tomatoes, let them hang out for 2-3 minutes until tomatoes start breaking down and everything smells incredible.
Create the broth:
Pour in your liquid, bring it to a gentle bubble—this isn't a rolling boil, just enough heat to start developing flavors.
Balance the flavors:
Stir in tamarind and sugar, let it simmer 3 minutes, then add pineapple, celery, and okra—cook 5 minutes until pineapple starts softening.
Cook the seafood:
Gently slip in fish and shrimp, simmer 5-7 minutes until just opaque—any longer and the fish gets tough, skim off any foam that rises to the top.
Season to perfection:
Add fish sauce, salt, and pepper—taste and adjust tamarind or sugar until it hits that perfect sweet-sour harmony that makes your lips pucker slightly.
Finish with freshness:
Stir in bean sprouts and herbs, simmer 1-2 minutes more—this quick cook keeps them crisp and bright.
Serve immediately:
Ladle into bowls, scatter extra herbs on top—the steam should be rising, colors vibrant against the dark broth.
A bright white fish fillet sits in a colorful bowl of Canh Chua. Pin it
A bright white fish fillet sits in a colorful bowl of Canh Chua. | cookedandcozy.com

This soup became a tradition at our house because it's forgiving and welcoming. My nephew who refused anything fishy now asks for it by name, picking out all the shrimp first. There's something about the communal aspect—big pot in the middle, everyone ladling their own bowls, arguing over who gets the last piece of pineapple.

Making It Your Own

Lan taught me that Canh Chua varies by region—some add elephant ear fish, others use different vegetables. I've tried it with tofu and vegetable stock for a meatless Monday version, and honestly, it still delivers that same comfort. The key is keeping that sweet-sour balance intact, whatever protein you choose.

The Rice Connection

In Vietnam, this soup gets spooned over steamed jasmine rice, and that starch-soaking action is next level. The rice mellows the acidity just enough while catching all those flavorful bits. I make extra rice on purpose because leftovers heated up the next day—that's when the flavors have really become best friends.

Getting Ahead

You can prep everything hours before—cut vegetables, measure seasonings, have your fish ready. But the magic happens in that final 15 minutes when everything comes together. The broth's best fresh, though I've refrigerated it overnight and the flavors deepen beautifully.

  • Keep herbs separate until serving or they'll wilt into sad green mush
  • If making ahead, undercook the fish slightly—it finishes cooking when you reheat
  • Adjust seasonings after reheating—flavors concentrate as it sits
Close-up of Canh Chua garnished with cilantro, Thai basil, and sliced chilies. Pin it
Close-up of Canh Chua garnished with cilantro, Thai basil, and sliced chilies. | cookedandcozy.com

There's something deeply satisfying about a soup that wakes up every part of your palate. This one's been bringing people together in my kitchen for years, and I hope it does the same in yours.

Recipe FAQs

Authentic Canh Chora relies on the trifecta of tamarind for sourness, palm sugar for sweetness, and fish sauce for savory depth. The combination of specific herbs like rice paddy herb (ngò om) and sawtooth herb, along with pineapple and tomato, creates the distinctive flavor profile unique to Vietnamese cuisine.

Absolutely. Substitute firm tofu cubes for the white fish and shrimp, and switch to vegetable stock instead of fish stock. The tamarind base and vegetable medley still deliver the classic sweet-sour Vietnamese flavors that make this dish so beloved.

White fish with firm flesh holds up beautifully during simmering. Catfish, tilapia, snapper, or sea bass are traditional choices. The fish should be cut into chunks and added gently to prevent breaking apart, ensuring tender pieces in every bowl.

Tamarind provides the characteristic tangy notes that define this dish. While fresh lime juice can substitute in a pinch, it lacks the complex depth tamarind brings to the broth. Look for tamarind paste at Asian markets - it's worth seeking out for authentic flavor.

The key is tasting and adjusting. Start with the suggested amounts of tamarind and sugar, then add more of either until you achieve that perfect sweet-sour equilibrium. The broth should have a pleasant tanginess with a subtle sweetness that rounds out the fish sauce's saltiness.

Steamed jasmine rice is the traditional accompaniment, its subtle fragrance complementing the bold soup flavors. The rice also helps temper the broth's intensity. Some families also serve with crispy fried fish on the side for added texture and protein.

Vietnamese Sweet and Sour Soup

Aromatic Vietnamese broth with fish, pineapple, and fresh herbs delivers sweet-sour harmony in every spoonful.

Prep 20m
Cook 20m
Total 40m
Servings 4
Difficulty Medium

Ingredients

Fish & Seafood

  • 14 oz white fish fillets (catfish, tilapia, or snapper), cut into chunks
  • 5 oz medium shrimp, peeled and deveined

Vegetables & Fruit

  • 7 oz pineapple, peeled and cut into bite-sized pieces
  • 2 medium tomatoes, cut into wedges
  • 3.5 oz bean sprouts, rinsed
  • 1 small okra (about 2.5 oz), sliced
  • 2 stalks celery, sliced diagonally
  • 1 small onion, sliced
  • 2 birds eye chilies, sliced
  • 2 stalks lemongrass, bruised and cut into 2-inch pieces

Aromatics & Herbs

  • 3 cloves garlic, minced
  • 1 bunch fresh cilantro, chopped
  • 1 bunch Thai basil or rice paddy herb, chopped
  • 2 spring onions, sliced
  • 1 handful sawtooth herb

Broth & Seasonings

  • 5 cups water or fish stock
  • 2 tablespoons fish sauce
  • 1 tablespoon tamarind paste
  • 1 tablespoon sugar
  • 1 tablespoon vegetable oil
  • Salt and black pepper, to taste

Instructions

1
Prepare the Aromatic Base: Heat vegetable oil in a large pot over medium heat. Sauté garlic and onions until fragrant and translucent, about 2 minutes.
2
Build Flavor Foundation: Add bruised lemongrass and tomato wedges. Cook for 2–3 minutes until tomatoes begin to soften and release their juices.
3
Create the Broth: Pour in water or fish stock and bring to a gentle boil. Stir in tamarind paste and sugar, allowing them to dissolve completely. Simmer for 3 minutes to develop the sour-sweet base.
4
Add Vegetables: Add pineapple chunks, celery slices, and okra to the simmering broth. Cook for 5 minutes until vegetables are tender-crisp.
5
Cook Seafood: Gently lower fish chunks and shrimp into the soup. Simmer for 5–7 minutes until seafood is just cooked through. Skim off any foam that rises to the surface.
6
Season and Balance: Season with fish sauce, salt, and pepper. Taste and adjust tamarind or sugar as needed to achieve the characteristic sweet and sour balance.
7
Finish with Fresh Elements: Add bean sprouts, chopped cilantro, Thai basil, spring onions, sawtooth herb, and sliced chilies. Simmer for 1–2 minutes more, then remove from heat immediately.
8
Serve and Garnish: Ladle hot soup into serving bowls. Garnish with additional fresh herbs and serve immediately with steamed jasmine rice.
Additional Information

Equipment Needed

  • Large soup pot (6-quart capacity minimum)
  • Chef's knife and cutting board
  • Ladle for serving
  • Fine-mesh strainer for skimming foam

Nutrition (Per Serving)

Calories 215
Protein 23g
Carbs 22g
Fat 4g

Allergy Information

  • Contains fish and shellfish (shrimp)
  • Contains fish sauce (fish allergen)
Lauren McCall

Home cook sharing easy, family-friendly recipes and practical kitchen tips.