Vietnamese Sweet and Sour Soup

A steaming bowl of Canh Chua Vietnamese soup features tender white fish chunks and vibrant pineapple pieces swimming in a golden broth. Save to Pinterest
A steaming bowl of Canh Chua Vietnamese soup features tender white fish chunks and vibrant pineapple pieces swimming in a golden broth. | mealminty.com

Canh Chua is a beloved Vietnamese soup that embodies the perfect harmony of sweet, sour, and savory flavors. This aromatic broth features tender white fish and shrimp, complemented by pineapple's natural sweetness and the bright acidity of tamarind. Fresh vegetables like tomatoes, celery, and okra add texture, while fragrant herbs including cilantro, Thai basil, and lemongrass create layers of aromatic complexity.

The soup comes together in just 40 minutes, making it perfect for weeknight dinners yet impressive enough for guests. The tamarind base provides that characteristic tanginess that defines Canh Chua, while fish sauce adds depth and umami. Each spoonful delivers a comforting warmth that's both refreshing and satisfying.

Serve this steaming bowl over jasmine rice to soak up the flavorful broth, and adjust the spice level with fresh bird's eye chilies according to your preference. The soup naturally pairs well with crispy fried foods or can stand alone as a complete, nourishing meal.

The steam rising from my aunt's tiny kitchen in Saigon still haunts me in the best way possible. She made this soup look effortless, tossing ingredients into a battered aluminum pot while chatting away, never once measuring anything. The first time I tried recreating it alone in my cramped apartment, I called her three times in tears because the balance felt completely off.

My roommate walked in mid-simmer when I was finally getting the hang of it. The smell of lemongrass hitting hot oil stopped him in his tracks, and he ended up staying for dinner, eating three bowls straight without saying a word except occasional wow.

Ingredients

  • White fish fillets: Catfish holds up beautifully but any mild white fish works, just don't overcook it or it'll fall apart completely
  • Shrimp: Totally optional but adds that sweet seafood depth that makes the soup feel complete
  • Pineapple: The sweetness here is nonnegotiable, fresh chunks break down slightly and infuse the broth
  • Tomatoes: They'll soften into the soup, creating those little pockets of warm acidity
  • Bean sprouts: Add them last for that essential crunch that cuts through the rich broth
  • Okra: Some people love the slight thickness it adds, others skip it entirely, totally your call
  • Lemongrass: Bruise those stalks hard with your knife handle or they won't release enough fragrance
  • Tamarind paste: This is what gives Canh Chua its signature sour punch, start with less and work up
  • Fresh herbs: Thai basil and cilantro are nonnegotiable, that aromatic finish is what ties everything together

Instructions

Build your flavor base:
Heat oil in your largest pot over medium heat, toss in minced garlic and sliced onions, let them sweat until translucent and fragrant, about 3 minutes, stirring occasionally so nothing catches.
Wake up the aromatics:
Add lemongrass pieces and tomato wedges, cook for another couple minutes until tomatoes start breaking down and releasing their juices.
Create the broth:
Pour in your water or fish stock, bring it to a gentle boil, then stir in tamarind paste and sugar, letting everything meld together for about 3 minutes.
Add the vegetables:
Toss in pineapple chunks, sliced celery, and okra if you're using it, let simmer for 5 minutes until pineapple starts softening slightly.
Cook the seafood gently:
Slide in fish chunks and shrimp carefully, keep the heat at a gentle simmer, cook for 5 to 7 minutes until seafood is just opaque, skim off any foam that rises to the top.
Balance the flavors:
Season with fish sauce, salt, and pepper, taste and adjust tamarind or sugar if needed, it should hit sweet, sour, and salty all at once.
Finish with freshness:
Stir in bean sprouts, all your chopped herbs, spring onions, and sliced chilies, simmer for just 1 to 2 more minutes, then remove from heat immediately.
Colorful vegetables like celery and tomato float in Canh Chua, garnished with fresh green herbs and a spoon ready to serve. Save to Pinterest
Colorful vegetables like celery and tomato float in Canh Chua, garnished with fresh green herbs and a spoon ready to serve. | mealminty.com

This soup became my go-to whenever someone needed cheering up. There's something about those hot, tangy, comforting flavors that feels like a hug, and watching someone's face light up after that first spoonful never gets old.

Finding the Right Fish

I've tried so many fish varieties over the years, and honestly, catfish remains my favorite for its slight sweetness and how it holds together. Tilapia works in a pinch, but something about how catfish chunks absorb that tangy broth while staying firm is absolute perfection.

The Herb Situation

Fresh herbs are absolutely nonnegotiable here, and I learned this the hard way when I tried making it with dried herbs once. The combination of Thai basil, cilantro, and those fragrant rice paddy herbs if you can find them is what elevates this from good soup to something transcendent.

Making It Ahead

This soup actually tastes better the next day when flavors have had time to marry, but hold off on adding fish and bean sprouts until reheating. Store the broth base separately and finish it fresh when you're ready to eat.

  • Make extra broth base and freeze portions for quick weeknight meals
  • Prep all your vegetables the night before to make weeknight cooking faster
  • The herbs must be added at the very end or they'll turn dark and sad
A close-up of Canh Chua shows fresh bean sprouts and aromatic herbs topping the sweet and sour fish broth in a rustic bowl. Save to Pinterest
A close-up of Canh Chua shows fresh bean sprouts and aromatic herbs topping the sweet and sour fish broth in a rustic bowl. | mealminty.com

There's something profoundly healing about a bowl of Canh Chua, the way hot, sour, sweet, and fresh come together in perfect harmony. I hope this recipe brings as much comfort to your kitchen as it has to mine over the years.

Recipe Questions & Answers

Canh Chua embodies Vietnam's culinary philosophy of balancing five flavors: sweet, sour, salty, bitter, and umami. The combination of tamarind's natural acidity, pineapple's sweetness, and fish sauce's savory depth creates this distinctive flavor profile that Vietnamese cuisine celebrates.

Absolutely. Substitute fish with firm tofu cubes and replace fish stock with vegetable broth. Use soy sauce or mushroom seasoning instead of fish sauce for that savory element. The soup remains delicious while accommodating plant-based diets.

White fish fillets with firm flesh like catfish, snapper, tilapia, or sea bass hold up beautifully during simmering. These mild-flavored fish absorb the aromatic broth while maintaining their texture. Catfish is traditionally preferred in Vietnam.

Start with the recommended amounts of tamarind paste and sugar, then taste and adjust incrementally. Add more tamarind for increased sourness or sugar for sweetness. The ideal Canh Chora should have a pleasant tang without being overwhelmingly sharp, with sweetness rounding out the flavors.

The broth base can be made ahead and refrigerated for up to 2 days. However, add the seafood and fresh herbs just before serving to maintain their texture and vibrant appearance. Reheat gently to avoid overcooking the fish.

Thai basil and rice paddy herb (ngò om) are traditional and provide authentic flavor. Cilantro adds freshness, while sawtooth herb contributes a unique peppery-citrus note. If unavailable, substitute with regular basil and extra cilantro, though the flavor profile will differ slightly.

Vietnamese Sweet and Sour Soup

A tangy Vietnamese soup with fish, pineapple, and fresh herbs offering perfect sweet-sour balance.

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

Ingredients

Fish & Seafood

  • 14 oz white fish fillets, cut into chunks
  • 5 oz medium shrimp, peeled and deveined

Vegetables & Fruit

  • 7 oz pineapple, cut into bite-sized pieces
  • 2 medium tomatoes, cut into wedges
  • 3.5 oz bean sprouts, rinsed
  • 2.5 oz okra, 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, chopped
  • 2 spring onions, sliced

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 Aromatic Base: Heat vegetable oil in a large pot over medium heat. Sauté garlic and onions until fragrant and translucent, approximately 2-3 minutes.
2
Build Flavor Foundation: Add bruised lemongrass and tomato wedges to the pot. Cook for 2-3 minutes until tomatoes begin to soften and release their juices.
3
Create Broth Base: Pour in water or fish stock and bring to a gentle boil. Stir in tamarind paste and sugar, allowing them to dissolve completely.
4
Add Vegetables: Add pineapple chunks, sliced celery, and okra to the simmering broth. Cook for 5 minutes until vegetables begin to soften.
5
Cook Seafood: Gently add fish chunks and shrimp to the pot. 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-sour balance.
7
Finish with Fresh Elements: Add bean sprouts, chopped cilantro, Thai basil, spring onions, and sliced chilies. Simmer for 1-2 minutes more, then remove from heat immediately.
8
Serve: Ladle hot soup into serving bowls. Garnish with additional fresh herbs if desired. Serve immediately with steamed jasmine rice.
Additional Information

Equipment Needed

  • Large soup pot
  • Chef's knife and cutting board
  • Ladle
  • Fine-mesh strainer

Nutrition (Per Serving)

Calories 215
Protein 23g
Carbs 22g
Fat 4g

Allergy Information

  • Contains fish and shellfish including shrimp
  • Contains fish sauce
  • Verify fish sauce is gluten-free certified for celiac safety
Kelsey Reed

Simple homemade recipes and practical kitchen tips for real life cooks—shared by Kelsey Reed.