Vietnamese Recipes
Sweet and Sour Tomato Fish Soup
Canh chua is the kind of soup that wakes up the whole table. It is sour first from tamarind, then gently sweet from pineapple and sugar, then savory from fish sauce, all in one spoonful. The tomatoes give the broth its warm red color and a rounded body that keeps the sourness from feeling sharp.
I learned the balance the slow way. My first pot was so sour it made everyone squint, and the fish turned to mush because I let it boil. Get the sweet-sour balance right and add the fish at the very end, and you end up with a soup that tastes fresh, clean, and deeply comforting.

Why This Canh Chua Works
Canh chua translates roughly as sour soup, but that name only tells half the story. The magic is in the way three flavors sit side by side without fighting: sour from tamarind, sweet from pineapple and a spoon of sugar, and savory from fish sauce. When those three are in balance, the broth tastes bright and layered rather than simply sour.
Tomatoes do quiet but essential work here. They give the broth its ruby color, add a soft natural sweetness, and lend just enough body so the soup feels like a meal rather than flavored water. Cut into wedges and added early, they melt slightly and thicken the broth without any starch.
The vegetables are chosen for texture as much as taste. Okra brings a gentle silkiness, taro stem soaks up broth like a sponge, and bean sprouts go in at the last second so they stay crunchy. Once the broth is balanced, the fish poaches gently in just a few minutes, so the whole thing is on the table in under an hour.
Pro observation: Taste the broth before the fish goes in and keep tasting. It should make you want another sip immediately. If it does not, it usually needs a touch more fish sauce for salt, sugar for roundness, or tamarind for lift.
Ingredients
Kitchen Measurement Converter
Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.
Ingredient Notes & Substitutions
The Fish
Firm white fish holds together best in a simmering broth. Basa or catfish is traditional, but any firm halal white fish such as tilapia or cod works. Cut it into large chunks and add it only at the end.
Tamarind
Tamarind pulp is the soul of the sour. Soak a spoonful in hot water, mash it, and strain out the seeds. Ready-made tamarind paste works too; add it gradually and taste.
Tomatoes and Pineapple
Ripe tomatoes give color and body, while fresh pineapple adds the signature sweet edge. Canned pineapple works in a pinch; drain it well and cut back the sugar a little.
Taro Stem and Okra
Taro stem, or bac ha, is spongy and soaks up broth beautifully. Peel it and slice on the bias. If you cannot find it, celery gives a similar crunch.
Equipment
- Large soup pot
- Small frying pan
- Sharp knife and board
- Fine strainer
- Ladle
- Small bowl for tamarind
Before You Start
1. Prepare the tamarind first. Soak the tamarind pulp in half a cup of hot water for ten minutes, mash it, and strain, so the sour liquid is ready when you need it.
2. Cut the vegetables to size. Slice the taro stem and okra on the bias and cut the tomatoes into wedges so everything cooks evenly and looks vibrant in the bowl.
3. Start the rice early. Canh chua is served with steamed rice, so get the rice going before you build the broth and both will be ready together.
Step-by-Step Instructions
Prep the Tamarind and Vegetables
Soak the tamarind pulp in hot water, mash, and strain to get a smooth sour liquid. Cut the tomatoes into wedges, slice the pineapple, okra, and peeled taro stem on the bias, and rinse the bean sprouts. Have the fish chunks patted dry and ready in the fridge.
Build the Sour Broth
Bring the water to a boil in a large pot. Stir in the strained tamarind liquid, the fish sauce, and the sugar. Add the tomato wedges and pineapple and simmer about 5 minutes, until the tomatoes soften and the broth turns a warm red. Taste and adjust the balance now.

Add the Sturdy Vegetables
Slide in the sliced taro stem and okra and simmer for 3 to 4 minutes, until the taro stem softens and turns silky but still has a little bite. These vegetables need a head start, so they go in before the fish and the delicate greens.
Poach the Fish Gently
Lower the heat to a bare simmer and slide in the fish chunks. Poach gently for 4 to 5 minutes, without stirring hard, until the fish turns opaque and flakes when nudged with a spoon. A steady, quiet simmer keeps the pieces whole instead of breaking them apart.

Finish with Sprouts and Herbs
Turn off the heat. Stir in the bean sprouts and sliced Thai chili, then scatter over the saw-leaf herb, cilantro, and rice paddy herb. The residual heat wilts the sprouts slightly while keeping them crunchy and the herbs fragrant.

Fry the Garlic and Serve
In a small pan, heat the oil and fry the sliced shallots and minced garlic until golden and fragrant, about 1 to 2 minutes. Spoon the fried garlic and its oil over the soup. Ladle the canh chua into bowls and serve piping hot with steamed rice on the side.
Chef’s Tips From Real Kitchen Testing
Balance the broth before the fish goes in. It is far easier to fine-tune the sweet-sour-salty ratio in a clear broth than once the pot is crowded.
Add the fish to a bare simmer, never a hard boil. Vigorous bubbles break the chunks apart and turn the flesh dry. Gentle heat keeps it silky.
Save the herbs and bean sprouts for the very end, off the heat. Even a minute of boiling turns them limp and dull.
Recipe Variations
Serving Suggestions
- A bowl of hot steamed jasmine rice
- A small dish of fish sauce with sliced chili for dipping
- Extra lime wedges and fresh herbs on the side
- A simple stir-fried green vegetable to round out the meal
Nutrition Facts
| Nutrient | Amount per serving |
|---|---|
| Calories | 240 |
| Protein | 26 g |
| Carbohydrates | 20 g |
| Fat | 6 g |
| Saturated Fat | 1.5 g |
| Fiber | 4 g |
| Sugar | 12 g |
| Sodium | 900 mg |
Values are estimates per serving and vary with the exact ingredients and brands you use.
Make-Ahead Tips
Canh chua tastes best fresh, but you can do most of the work ahead. Build and balance the sour broth with the tomatoes and pineapple, then cool and refrigerate it for up to two days. When you are ready to eat, bring the broth back to a simmer, add the sturdy vegetables, poach the fish, and finish with sprouts and herbs. Saving the fish and fresh garnishes for the last minutes preserves that just-cooked brightness.
Storage, Freezing & Reheating
Common Mistakes to Avoid
Troubleshooting
Broth tastes too sour? Round it out with a little more sugar and a splash of fish sauce, and add a few extra pineapple slices for natural sweetness.
Broth tastes flat? It usually needs more fish sauce for salt and a touch more tamarind for lift. Adjust both a little at a time and taste as you go.
Fish falling apart? The broth was too hot or stirred too much. Next time keep it at a bare simmer, add the fish last, and nudge it as little as possible.
A Note on Vietnamese Cooking
Canh chua belongs to a whole family of Vietnamese sour soups, where a bright, tangy broth is the centerpiece rather than a rich or heavy base. Southern cooks reach for tamarind to bring that sourness, though other regions and cooks may lean on lime, star fruit, or fermented rice, each giving its own character. The through-line is balance: a sour note that is always answered by sweetness and savoriness so the soup tastes lively rather than sharp.
That balance rests on two humble seasonings. Fish sauce carries the savory depth and a spoon of sugar softens the edges of the tamarind, while fresh herbs added at the end lift everything with aroma. Getting comfortable adjusting fish sauce, sugar, and sour to taste is the most useful skill for cooking Vietnamese food at home. If you enjoy bright, spiced tomato bowls, our creamy Indian tomato soup plays in a similar register, and you can browse more on our tomato recipes hub.
Fish doneness and safety: Fish is fully cooked when it turns opaque all the way through and flakes easily with gentle pressure, which for these chunks takes about 4 to 5 minutes at a gentle simmer. Aim for an internal temperature of 145 F (63 C) at the thickest part. Use fresh, cold-stored fish, and do not leave the finished soup at room temperature for more than two hours.
Frequently Asked Questions
More Tomato Recipes to Try
Last updated: September 23, 2026
