Peranakan Hot and Sour Fish Soup

Main Ingredients

  • 250 grams bandeng or milk fish   
  • 2 fresh limes, juiced
  • 1 teaspoon salt


  • 2 cloves garlic
  • 3 pieces shallot, cut in halves
  • 2 pieces red big chillies, deseeded
  • 6 small red bird’s eye chillies, bruised
  • 2 stalks lemongrass, bruised
  • 2 slices turmeric, peeled and sliced
  • 2 slices galangal
  • 2 slices ginger
  • 1 whole red tomato, quartered
  • 5 pieces belimbing wuluh
  • ¼ cup sweet soya sauce
  • 1 tablespoon palm sugar
  • 1 teaspoon white pepper
  • 2 fresh salam leaves
  • 2 fresh lime leaves
  • 3 tablespoons fresh tamarind juice
  • 1 small bunch fresh coriander leaves (optional)
  • 1 ½ cups water


  • Fried shallots
  • Sprig fresh coriander
  • Pinch white pepper


  • Cut the fish into steak and marinate the fish in the lime juice, tamarind juice and salt for about 10 minutes.
  • While it’s marinating, dry roast the aromats in a medium sized pot for a few minutes until fragrant.
  • Pour the water into the pan with the dry roasted ingredients and then add in sweet soya, palm sugar, white pepper, salam leaves, lime leaves and belimbing wuluh.
  • Bring it to the boil and then turn the heat down to simmer before adding in the fish pieces.
  • Let it gently cook for about 10 minutes (depending on the thickness of the fish pieces) before adding in the quartered tomatoes.
  • Simmer for another 2 minutes and then check the seasoning to ensure it’s balanced: it should have all the right elements of sweet, salty, hot and fragrant.
  • Finish by adding in some freshly chopped coriander leaf. When plating, gently remove the fish from the pot using a large slotted spoon and place in the centre of the serving plate, before pouring the sauce over the top.
  • Garnish with a sprig of coriander and golden fried shallots. Eat immediately.
20 minutes
2 portions