Chilli Fish is the Indo-Chinese restaurant classic you can absolutely nail at home: firm white fish chunks, lightly coated and fried until the edges turn deep golden, then folded through a glossy sauce of garlic, ginger, soy, vinegar and chilli. The plate comes out looking like the one next to the pink wall in every food photo you have saved, and it tastes even better than it looks.
The trick is two things at once: keep the fish pieces big enough to stay juicy, and get the wok properly hot so the sauce clings instead of pooling. A cornstarch coating gives you that crackly shell, and a quick toss at the end keeps the crunch alive.
Serve it as an appetizer with cold drinks or spoon it over steamed rice for a full dinner. Either way, it goes from raw fish to a sizzling plate in about 30 minutes of active cooking.
Why You'll Love This Recipe
About the Ingredients
700 g (1.5 lb) firm white fish fillets, such as cod, basa or halibut, cut into 4 cm chunks
Basa is the classic choice in Indo-Chinese kitchens because it holds shape and stays moist. If using frozen fillets, thaw fully and pat bone dry, or the coating will slide off.
3 tbsp cornstarch
Cornstarch is what creates the crackly shell. Arrowroot powder works as a 1:1 gluten-free substitute, but tapioca starch will turn slightly chewy.
1 tsp Kashmiri chilli powder
Kashmiri chilli gives deep red colour with mild heat. Substitute 1/2 tsp cayenne plus 1/4 tsp sweet paprika if that is what you have.
1 cup (240 ml) neutral oil, such as sunflower or canola, for shallow frying
You need about 1 cm of oil in the pan, not a full deep fry. Save the oil after frying for another round of stir-frying within two days.
2 tbsp garlic, finely chopped (about 5 cloves)
Fresh garlic is non-negotiable here for the sauce's backbone. Jarred garlic works in a pinch but add it 30 seconds later since it burns faster.
1 tbsp ginger, finely chopped
Use young ginger if you can find it, it is less fibrous. In a hurry, 1 tsp of ginger paste substitutes fine.
1 medium green bell pepper, cut into 2 cm squares
Bell pepper adds crunch and sweetness. Swap in 1 cup of sliced bok choy or green beans if you prefer, adding them 1 minute earlier.
1 medium red onion, cut into 2 cm petals
Red onion keeps its colour and bite. Yellow onion is a fine substitute, though it will soften faster.
3 tbsp soy sauce
Use regular soy sauce, not dark, which would make the sauce muddy. For gluten-free, use tamari and check your chilli sauce label too.
2 tbsp tomato ketchup
Ketchup brings sweetness and body. Substitute 1 tbsp tomato paste plus 1 tsp honey for a less sweet, more savoury sauce.
1 tbsp chilli sauce, such as sambal oelek or Sriracha
Sambal gives a brighter, chunkier heat. If you only have hot sauce, use 2 tsp and taste before adding more.
1 tsp rice vinegar, plus 2 spring onions sliced for garnish
Rice vinegar is mild and clean. White wine vinegar works, but use 3/4 tsp since it is sharper.
Tips & Tricks
Dry the fish thoroughly
Moisture is the number one reason the coating falls off. Pat the chunks with paper towels and let them sit uncovered for 10 minutes before coating.
Fry in batches, never crowd
Overcrowding drops the oil temperature and steams the fish instead of crisping it. Fry 6 to 8 pieces at a time and let the oil come back up to heat between batches.
Toss the sauce off the heat
Add the fried fish to the sauce only after the pan is off the burner, and fold gently with a spatula. Boiling the fish in the sauce for even a minute softens the crust.
Pro Tips
Step-by-Step Instructions
1. Prep the fish
Pat the fish chunks completely dry with paper towels, then toss with 1/2 tsp salt, the Kashmiri chilli powder and the cornstarch until every piece is evenly dusted. Let them sit for 10 minutes while you chop the vegetables.
2. Mix the sauce
In a small bowl, whisk the soy sauce, ketchup, chilli sauce, rice vinegar and 3 tbsp water until smooth. Set it beside the stove so you can pour it in one motion later.
3. Heat the oil
Pour 1 cup of oil into a wide pan and heat over medium-high until it reaches 350 F (175 C), about 4 to 5 minutes. A small piece of cornstarch dropped in should sizzle and rise immediately.
4. Fry the fish
Fry the fish in 3 batches for 3 to 4 minutes per batch, turning once, until the coating is deep golden brown and the fish flakes easily with a fork. Transfer to a rack or paper towels and repeat.
5. Bloom the aromatics
Pour off all but 2 tbsp of oil, then add the garlic and ginger over medium heat. Stir for 45 to 60 seconds until fragrant and just turning pale gold, not brown, which would taste bitter.
6. Stir-fry the vegetables
Add the onion and bell pepper and stir-fry over high heat for 3 to 4 minutes, until the onion edges soften and the pepper is bright and still crisp. You want crunch, not mush.
7. Simmer the sauce
Pour in the sauce mixture and bring it to a boil, about 1 minute, until it thickens enough to coat the back of a spoon. If it looks thin, simmer 30 seconds more; if too thick, splash in 1 tbsp water.
8. Toss and serve
Turn off the heat, add the fried fish and fold gently to coat, about 30 seconds. Scatter with spring onions and serve immediately with steamed rice or as an appetizer.
Delicious Variations
Chilli Fish Dry Version
Skip the extra water in the sauce and reduce it to a thick glaze before adding the fish, for a drier, snack-style plate.
Baked Chilli Fish
Toss the coated fish with 2 tbsp oil and bake at 425 F (220 C) for 12 to 14 minutes on a lined tray, then fold into the sauce as written.
Prawn Chilli
Swap the fish for 500 g peeled large prawns, fry for just 90 seconds per batch, and reduce the soy sauce to 2 tbsp so the sauce does not overpower them.
How to Store Chilli Fish
Refrigerator
Store in an airtight container for up to 2 days. The coating will soften, so reheat in a hot pan rather than the microwave.
Freezer
Freeze the fried fish before saucing for up to 1 month, layered with parchment. The sauce itself freezes well for 2 months; thaw overnight in the fridge.
Reheating
Reheat the fish on a tray at 400 F (200 C) for 6 to 8 minutes until crisp, warm the sauce separately on the stove, then combine just before serving.
Frequently Asked Questions
Q: What kind of fish is best for chilli fish?
Firm white fish such as basa, cod, halibut or tilapia works best because it holds its shape when tossed in sauce. Avoid delicate fish like sole or flounder, which fall apart during frying and stirring.
Q: Can I make chilli fish without deep frying?
Yes, you can shallow fry in about 1 cm of oil or bake the coated fish at 425 F (220 C) for 12 to 14 minutes. Baking gives a lighter crust, so toss it with the sauce at the very last second to keep some crunch.
Q: Is chilli fish very spicy?
It is moderately spicy as written, with most of the heat coming from the chilli sauce rather than the Kashmiri powder. To make it mild, halve the chilli sauce and add 1 tsp honey to balance the sauce.
Q: How do I stop the cornstarch coating from falling off?
Dry the fish completely and let the coating rest for 10 minutes before frying so it hydrates and sticks. Also keep the oil at 350 F (175 C); oil that is too cool lets the coating slide off instead of setting.
Q: What should I serve with chilli fish?
Steamed jasmine rice or fried rice is the classic pairing, and hakka noodles work just as well. As a starter, serve it on its own with lemon wedges and extra sliced chilli.
Give this chilli fish a go tonight and tag me in your plate photos, especially if you shoot it next to a bright pink wall. If you try the baked version or crank up the chilli, tell me in the comments how it turned out.
Chilli Fish
Chilli Fish is a crispy fried fish tossed in a sticky garlic-chilli sauce, a 30-minute Indo-Chinese dinner that beats takeout any night.
🧂 Ingredients
- 700 g (1.5 lb) firm white fish fillets, such as cod, basa or halibut, cut into 4 cm chunks
- 3 tbsp cornstarch
- 1 tsp Kashmiri chilli powder
- 1 cup (240 ml) neutral oil, such as sunflower or canola, for shallow frying
- 2 tbsp garlic, finely chopped (about 5 cloves)
- 1 tbsp ginger, finely chopped
- 1 medium green bell pepper, cut into 2 cm squares
- 1 medium red onion, cut into 2 cm petals
- 3 tbsp soy sauce
- 2 tbsp tomato ketchup
- 1 tbsp chilli sauce, such as sambal oelek or Sriracha
- 1 tsp rice vinegar, plus 2 spring onions sliced for garnish
📋 Instructions
- 1Prep the fish — Pat the fish chunks completely dry with paper towels, then toss with 1/2 tsp salt, the Kashmiri chilli powder and the cornstarch until every piece is evenly dusted. Let them sit for 10 minutes while you chop the vegetables.
- 2Mix the sauce — In a small bowl, whisk the soy sauce, ketchup, chilli sauce, rice vinegar and 3 tbsp water until smooth. Set it beside the stove so you can pour it in one motion later.
- 3Heat the oil — Pour 1 cup of oil into a wide pan and heat over medium-high until it reaches 350 F (175 C), about 4 to 5 minutes. A small piece of cornstarch dropped in should sizzle and rise immediately.
- 4Fry the fish — Fry the fish in 3 batches for 3 to 4 minutes per batch, turning once, until the coating is deep golden brown and the fish flakes easily with a fork. Transfer to a rack or paper towels and repeat.
- 5Bloom the aromatics — Pour off all but 2 tbsp of oil, then add the garlic and ginger over medium heat. Stir for 45 to 60 seconds until fragrant and just turning pale gold, not brown, which would taste bitter.
- 6Stir-fry the vegetables — Add the onion and bell pepper and stir-fry over high heat for 3 to 4 minutes, until the onion edges soften and the pepper is bright and still crisp. You want crunch, not mush.
- 7Simmer the sauce — Pour in the sauce mixture and bring it to a boil, about 1 minute, until it thickens enough to coat the back of a spoon. If it looks thin, simmer 30 seconds more; if too thick, splash in 1 tbsp water.
- 8Toss and serve — Turn off the heat, add the fried fish and fold gently to coat, about 30 seconds. Scatter with spring onions and serve immediately with steamed rice or as an appetizer.