Go Back Email Link
+ servings
Traditional Cape Malay pickled fish served with fresh herb garnish, hot cross buns, and butter on the side.

Traditional South African Pickled Fish Cape Malay-Style

This Traditional Cape Malay Pickled Fish is tangy, aromatic, and deeply flavorful. Lightly battered fish is fried, then gently simmered in a fragrant onion and spice-infused vinegar sauce. The flavors improve over time, making this the perfect make-ahead dish for festive tables, hot cross buns, or easy entertaining. Please note: Resting Time: 24 hours (minimum, for best flavor) and Total Active Time: 1 hour 10 minutes
Prep 30 minutes
Cook Time 40 minutes
Total Time 1 hour 10 minutes
Servings :8 people

Ingredients
  

Fish Batter

  • 1 kg firm white fish 2.26 lbs, cut into 5 cm / 2 in squares or rectangles
  • 1/3 cup sunflower or vegetable oil use more as needed
  • 1/2 cup flour
  • 4 eggs beaten
  • 1/2 tsp salt and pepper to taste

Dry Roast Spices

  • 4 bay leaves stems removed
  • 1 tsp fennel seeds
  • 5 ml coriander seeds
  • 1 tsp cumin seeds
  • 1 tbsp black peppercorns
  • 6 cloves

Spice Powders

  • 1 tsp turmeric
  • 1 tsp fish spice
  • 1 tsp paprika
  • 2 tbsp masala curry powder
  • 1 tsp salt

Onion Pickle

  • 500 g onions approx. 4–5 medium, sliced into 5 mm slices
  • 3/4 cup vegetable or canola oil
  • 2 cups white wine vinegar approx. 500 ml
  • 1 1/2 cups water
  • 1 fresh chili de-seeded & sliced, or 1/2 tsp chili flakes
  • 4 garlic cloves minced
  • 1 thumb-size piece of ginger grated

Instructions 

Prep the Fish

  • If frozen, defrost fish to room temperature.
  • Cut into 5 cm / 2 in squares or rectangles. Pat dry with kitchen paper.
  • Season lightly with salt, pepper, and fish spice.

Fry the Fish

  • Dredge the fish in flour and beaten egg, shaking off excess flour.
  • Heat oil in a large non-stick pan (you’ll use this pan for the rest of the recipe).
  • Fry fish until golden brown on both sides.
  • Remove fish to a rack or plate lined with kitchen paper. Don’t worry if it cools — it will cook further in the pickling sauce.

Toast Whole Spices

  • Heat a dry pan over medium-high heat.
  • Add bay leaves, fennel seeds, coriander seeds, cumin seeds, black peppercorns, and cloves.
  • Stir constantly for 2–3 minutes until fragrant and lightly darkened. Some may crackle — this is normal.
  • Transfer to a plate to cool, then crush in a grinder or mortar.

Sauté Aromatics

  • Return the same pan used for frying fish.
  • Heat oil over medium heat, then sauté garlic, ginger, onions, and chili.
  • Add crushed toasted spices, spice powders, salt, pepper, vinegar, and water.
  • Reduce heat to medium-low and simmer for 15 minutes to build flavor.

Add the Fish

  • Carefully place fried fish into the aromatic onion sauce.
  • Spoon sauce over fish to cover.
  • Cover and simmer for 10 minutes.
  • If needed, add 1 cup of half water, half vinegar to ensure fish is mostly submerged.

Storage

  • Transfer fish and sauce to a non-metallic dish.
  • Pour all liquid over fish — don’t leave any behind.
  • Allow to cool completely, then cover with cling wrap.
  • Refrigerate at least 24 hours, ideally 2–3 days, to let flavors develop.
  • Tip: Resting the fish in the fridge allows it to absorb the sweet, sour, and savory flavors from the spices, intensifying taste and improving texture over time.

Notes

  • Use fresh, firm fish to prevent the fillets from falling apart.
  • This recipe improves with time and is best made 1–3 days ahead.
  • Taste as you go and adjust for acidity or sweetness (a small amount of sugar if needed).
  • The recipe uses a generous amount of onions — feel free to reduce the quantity if preferred, though they add great flavor.
  • Whole spices give the best aroma and depth of flavor, but you may use only spice powders if needed.
Storage & Resting:
  • Transfer fish and sauce to a non-metallic dish and pour all liquid over the fish.
  • Allow to cool completely, then cover and refrigerate for at least 24 hours, ideally 2–3 days.
  • Store in an airtight container in the fridge for up to 5 days.
  • Serve chilled or allow to stand briefly at room temperature before serving.

Nutrition

Serving: 1portionCalories: 491kcalCarbohydrates: 15gProtein: 30gFat: 34gSaturated Fat: 6gPolyunsaturated Fat: 18gMonounsaturated Fat: 8gTrans Fat: 0.2gCholesterol: 144mgSodium: 545mgPotassium: 597mgFiber: 2gSugar: 3gVitamin A: 172IUVitamin C: 6mgCalcium: 69mgIron: 3mg
Did You Make This Recipe?Tag @anosmickitchen on Insta and hashtag it #anosmickitchen