
Canh Chua (Vietnamese Sour Soup)
A southern Vietnamese sour soup from the Mekong Delta: a tamarind-based broth balanced with pineapple sweetness and fish sauce umami, filled with fish steaks or shrimp, tomatoes, okra, and bean sprouts, finished with crispy fried garlic and a crown of fresh herbs. The soup's defining quality is the precise calibration of four tastes — sour (tamarind), sweet (pineapple), salty (fish sauce), and savoury (the fish) — in a broth that is light but deeply flavoured. Catfish is traditional; salmon, snapper, or tilapia all work.
Ingredients
- 600 gcatfish steaks or firm white fish
- 2 tbspfish sauce
- 3 tbsptamarind concentrate or 40 g block tamarind dissolved in 150 ml hot water and strained
- 1.5 lwater or light fish or chicken stock
- 200 gfresh pineapple, cut into 3 cm chunks
- 2 ripe tomatoes, cut into thick wedges
- 150 gokra, halved on the diagonal
- 150 gbean sprouts
- 2 tbspfish sauce
- 1 tbspsugar
- 4 garlic cloves, thinly sliced
- 3 tbspneutral oil
- 1 large handful of rice paddy herb or Thai basil and cilantro combined
- 2 fresh red chillies, sliced, to serve
- 2 scallions, sliced
Method
- Marinate the fish. Coat the fish steaks or pieces with 2 tbsp fish sauce and set aside for 15 minutes (in the fridge if the kitchen is warm). The fish sauce seasons the fish and helps it hold together when added to the broth.

- Make crispy garlic. Heat the oil in a small pan over medium-low heat. Add the sliced garlic and fry gently, stirring often, for 4 to 5 minutes until golden and crisp. Watch carefully — garlic burns from golden to bitter in seconds. Remove with a slotted spoon onto paper towel and set aside. Keep the garlic oil in the pan.
- Build the broth. In a medium pot, bring the stock or water to a boil. Add the tamarind concentrate and stir to dissolve. Add the pineapple chunks and tomato wedges. Add the remaining 2 tbsp fish sauce and the sugar. Taste: the broth should already have a clear sour-sweet note. Adjust with more tamarind if too mild, more sugar if too sharp. Simmer for 5 minutes.

- Cook the fish and vegetables. Reduce heat to a gentle simmer. Add the marinated fish steaks carefully — do not stir, as the fish is delicate. Simmer gently for 6 to 8 minutes until the flesh is opaque and flakes when pressed (63°C / 145°F at the bone). In the last 2 minutes, add the okra, then the bean sprouts; let the soup come back to a full boil, count 30 seconds, and turn off the heat — the sprouts are cooked through and just wilted.

- Finish and serve. Ladle the soup into deep bowls. Place a piece of fish in each bowl. Drizzle a teaspoon of the reserved garlic oil over each serving. Scatter the crispy garlic on top. Add the fresh herbs (rice paddy herb or Thai basil and cilantro), sliced chillies, and scallions at the very last moment before serving — the heat of the soup blooms their aroma. Serve immediately alongside steamed white rice. A small bowl of fish sauce on the side for individual seasoning is traditional.
FAQ
Tamarind is a pod fruit with a thick, dark brown, intensely sour-sweet pulp that is fundamental to much of Southeast Asian cooking. It is the non-negotiable souring agent of canh chua — there is no genuine substitute that replicates both its sourness and its fruity depth. Forms: tamarind concentrate or paste (most convenient, sold in jars); block tamarind (sold compressed in plastic wrap — soak in hot water, squeeze, and strain out the seeds and fibres); tamarind soup powder or mix (sold in sachets specifically for this dish at Asian grocery stores). If truly unavailable, a mixture of lime juice with a small amount of pomegranate molasses approximates the colour and some of the depth, but results will differ. If you cook gluten-free, check the labels of the tamarind soup mix and the fish sauce.
Catfish is traditional in the Mekong Delta — it has a mild, slightly muddy flavour that suits the sour-sweet broth. Because catfish can be hard to find, good alternatives are: tilapia (similar mild flavour, holds together well), snapper (firmer and slightly more flavourful), salmon (richer, slightly fishier — sear briefly in the garlic oil first before adding to broth). Bone-in fish steaks are preferred over fillets because the bone adds flavour to the broth and the meat stays more intact. Shrimp (Canh Chua Tôm) is an equally popular version — use whole shell-on shrimp, add them 3 to 4 minutes before serving. Tofu works for a vegetarian version — use firm tofu, cubed, added with the vegetables, and season the broth with salt instead of fish sauce. For another Vietnamese soup built around a similar sour-savoury balance, see bún bò Huế.
Traditional: bạc hà (taro stem / elephant ear stem) — a spongy, crunchy stalk that absorbs the broth; okra — adds slight body to the broth as it cooks; bean sprouts — added at the very end and boiled for 30 seconds; pineapple — sweetness and natural acid; tomatoes — body and colour. Substitutes: bạc hà is the hardest to find outside Vietnam — celery cut on the bias is the most common substitute and works well; courgette/zucchini is also used. Okra can be replaced by green beans. Bean sprouts are widely available. The pineapple and tomatoes are non-negotiable for the flavour balance.
Fresh herbs go in at the very last second — they are scattered over the bowl as it is being handed to the diner, not stirred into the pot. Added to hot broth, the herbs immediately wilt, darken, and lose their aromatic volatiles — the very compounds that define their character. The correct herbs: rau om (rice paddy herb) — a small-leaved herb with a cumin-lime fragrance, the most authentic and distinctive choice; ngò gai (culantro/sawtooth herb) — spiky leaf, similar to coriander but more pungent; Thai basil (húng quế) — anise fragrance. Outside Vietnam the most accessible combination is Thai basil plus cilantro. Regular Italian basil is a poor substitute. Fresh mint can supplement. The crispy garlic goes onto the soup first, and the herbs on top of it. These same herbs also finish phở bò, Vietnam's other iconic soup.
Store the fish separately from the broth and vegetables. Fish left in the broth overnight becomes mushy as the acids in the tamarind and pineapple continue to break down its proteins. Store the broth (with the cooked vegetables) and the fish in separate covered containers in the fridge for up to 3 days. To reheat, bring the broth back to a full boil. Bean sprouts go soft on reheating, so add fresh ones to the boiling broth and boil them for 30 seconds. Then lower the heat, add the fish, and simmer 3 minutes until it is steaming hot all the way through (74°C / 165°F). The crispy garlic should always be made fresh, as stored garlic loses its crunch within a few hours.
Rate this
Recipes by email
One letter a week: a recipe picked for your taste, plus whatever is new on the site. Unsubscribe in one click.
Welcome gift: Sergei's cookbook (e-book).
By subscribing you agree to the privacy policy.
Tell us what you like to cook (30 seconds) →Keep browsing
More dishes from the Vietnamese archive — picked by overlap with what you're cooking now.



Join the conversation
Comments (2)
This soup taught me what Vietnamese cooking is really about: balancing sour, sweet, salty, and fresh in a single bowl. The tamarind provides the sour backbone, the pineapple adds sweet, fish sauce brings salt, and the herbs on top deliver freshness. Every component has a job. I add the fish last and cook it for exactly 3 minutes — any longer and it falls apart into the soup.
Diese Suppe ist mir zu sauer. Ich hab die angegebene Menge Tamarinde genommen und es war zu viel für meinen Geschmack. Nächstes Mal nehme ich die Hälfte. Ansonsten ist die Idee gut — Fisch mit Ananas und Tomaten in einer Suppe, das kenne ich aus keiner europäischen Küche. Man lernt nie aus.