
Vietnamese Sour Fish Soup
Vietnamese Sour Fish Soup
I love soups. I particularly do love sour soups as an appetizer because they really bring out my appetite! I know sour soups aren’t for all taste buds, but here’s a simple one you can make at home with fresh ingredients. You can always adjust the sourness (and even the spicyness) as desired. I came across this type of soup one day at a Vietnamese restaurant and loved it! So I googled it and then kind of tweaked it to my own tastes. To be honest, I don’t always follow soup recipes that I find. I love the fact that I can create, twist, tweak, add, remove, and flavour it with my personality – so this is my interpretation of it!
Soup Name:
Vietnamese Sour Fish Soup (Canh Chua Ca)
For soup and recipe videos, visit us on YouTube.

To start, you’ll need fresh fish heads. To be honest, you can use any type of bigger fish, such as salmon, tuna, big head fish, or bass. I just go to my local wet mart and pick up some “big head” fish, which is at like $15 HKD a head, which is cheap! If you’d like more protein, you can buy the fish tail as well. Don’t forget to use a fish bag in the soup. This will help keep the fish bones together as it disintegrates in the soup.
You’ll also need some fresh ingredients such as fresh parsley, okra, bean sprouts, garlic, ginger, shallots, green onions, lemongrass, tomatoes, celery, and fish sauce. In some recipes you’ll also find Vietnamese taro stems (which aren’t easy to find, so you can replace this with celery).

To make your fish heads super fragrant for the soup, use your soup pot (empty) and add in a dollop of oil (any type) and pan fry on medium head the diced garlic, ginger slices, sliced green onions, tamarind, sliced lemongrass, and diced shallots and fry until fragrant. Add in your clean fish parts and fry until the skin is a golden brown. When sufficiently yummy, you can throw everything into a thin mesh soup bag and set aside (optional).


Because I do sometimes get lazy and know that the kids aren’t likely going to fight me to drink this soup, I didn’t use a fish bag and just added water at this time until the pot is 3/4 full.
After you bring the soup to a boil, turn to medium heat and add in the tomatoes, celery (or taro stems), okra, and pineapples and continue to boil. Boil on medium for another 15 minutes or until the fish is completely cooked and the vegetables have softened. You can almost consider this a quick boil soup.


Taste the soup and add fish sauce as desired to increase the saltiness. This is when you can add the bean sprouts because they pretty much flash cook. Then serve immediately with parsley (and little spicy peppers, too) and enjoy! Be sure to scoop out all the goodies inside. Serve with rice or noodles! I love the colours of this soup – but more importantly, the flavours!! I do add more tamarind because I love sour stuff! Did I say that already? Haha… the best, are Costco giant sour keys….
What’s involved?
Prep time: 30 mins
Cook time: 30 mins on medium heat
Total time: 1 hour
Serves: 6 bowls
Ingredients
- 2 large fish heads, halved (or use fish tails)
- 2-3 stalks of celery (or Vietnamese taro stem), chopped
- 2 tomatoes, quartered
- 1 cup of pineapple chunks (canned is OK)
- 1 cup of bean sprouts
- 1 cup of okra, chopped
- 1 shallot, minced
- 5 cloves of garlic, minced
- 3 slices of fresh ginger
- 2-3 stalks of fresh green onions, diced
- 2-3 stalks of fresh lemon grass, chopped
- fresh parsley
- 2 tbsp of tamarind
- fish sauce, to taste
- 3L of water
Cooking Instructions
- In your soup pot, add a tablespoon of oil and fry the shallots, garlic, ginger, fresh green onions, and fresh lemon grass.
- When fragrant, throw in clean fish parts and pan fry until the skin is golden and crispy.
- Fill the pot to 3/4 full (or about 3L worth of water)
- Bring to a boil and turn to medium head, scooping out any oil or foam on top.
- Throw in tomatoes, pineapples, celery (or taro stems), and okra and let simmer for 15 minutes until the fish is completely cooked or the vegetables are soft.
- Taste soup and add fish sauce as needed.
- Add bean sprouts to boil for 1-2 minutes and serve. Garnish with fresh parsley.