Thai-Style Coconut Curry Salmon with Jasmine Rice and Crispy Shallots
A fragrant, silky Thai-inspired red curry with tender salmon fillets swimming in a luscious coconut milk broth, brightened with lime, ginger, and lemongrass. Served over fluffy jasmine rice and finished with golden crispy shallots, fresh herbs, and a squeeze of lime. Rich, aromatic, and deeply satisfying — this one tastes like it took all day but comes together in under an hour.
Recipe details
- Yield
- 4 people
- Prep time
- 20 minutes
- Cook time
- 35 minutes
- Total time
- 45 minutes
Ingredients
- 1½ cups jasmine rice, rinsed until water runs clear (use your rice cooker for perfect results)
- 2¼ cups water (for the rice cooker)
- 4 fillets (about 170g / 6 oz each) salmon fillets, skin-on, patted dry (skin-on keeps the fish together beautifully in curry)
- 2 tablespoons coconut oil
- 6 large shallots, 4 finely sliced into thin rings (for crispy topping), 2 finely diced (for curry base)
- 2-inch knob fresh ginger, peeled and finely grated
- 5 cloves garlic, minced
- 2 stalks lemongrass stalks, outer layers removed, bottom 4 inches bruised and finely sliced
- 3 tablespoons Thai red curry paste (check label is soy-free — most brands are)
- 2 cans (400ml / 14 oz each) full-fat coconut milk (shake well before opening)
- 2 tablespoons coconut aminos (your go-to soy sauce swap — adds gorgeous umami depth)
- 1 tablespoon fish sauce (adds deep umami — check it's soy-free)
- 1 tablespoon palm sugar or brown sugar
- 4 leaves kaffir lime leaves, central stem removed, leaves finely shredded (find these fresh or frozen at Asian grocers — totally worth it)
- 100g / 3.5 oz baby spinach or bok choy, roughly chopped if using bok choy
- 2 limes, 1 juiced, 1 cut into wedges for serving
- a generous handful fresh Thai basil, leaves picked (regular basil works in a pinch but Thai basil is magic here)
- 1 fresh red chili, finely sliced into rings (optional for heat, but makes it look gorgeous)
- ½ cup neutral oil (for shallow-frying the crispy shallots)
- to taste salt
- ½ teaspoon ground turmeric (for a beautiful golden hue on the salmon)
- ½ teaspoon ground cumin
Instructions
- Start your rice cooker: add 1½ cups rinsed jasmine rice and 2¼ cups water. Switch it on and let it do its thing — it'll be ready well before the curry is done.
- Make the crispy shallots: pour ½ cup neutral oil into your cast iron pan over medium heat. While the oil heats up, thinly slice 4 of the 6 shallots into rings. Test the oil with one shallot ring — it should sizzle immediately. Add all the sliced shallot rings and fry, stirring occasionally, until deeply golden and crispy, about 6–8 minutes. Watch them carefully — they can go from golden to burnt fast! Scoop them out with a slotted spoon onto a paper-towel-lined plate and sprinkle lightly with salt. They will crisp up further as they cool. Set the pan aside — you'll use it again.
- While the shallots cool, finely dice the remaining 2 shallots, mince 5 cloves of garlic, grate the 2-inch knob of peeled ginger, and finely slice the 2 lemongrass stalks (bruised first). Shred the 4 kaffir lime leaves (stem removed). Set everything together in a small bowl.
- Pat the 4 salmon fillets completely dry with paper towels — this is the secret to a good sear. Rub each fillet with a pinch of salt, ½ teaspoon turmeric, and ½ teaspoon cumin on the flesh side only.
- Pour off most of the oil from the cast iron pan, leaving about 1 tablespoon behind, and return to medium-high heat. When very hot, place the salmon fillets skin-side DOWN. Press gently for the first 10 seconds. Sear for 3–4 minutes until the skin is golden and crispy, then flip and sear the flesh side for just 1 minute. The salmon should be barely cooked through — it will finish in the curry. Remove from the pan and set aside on a plate.
- Reduce the heat to medium. Add 2 tablespoons coconut oil to the same cast iron pan. Once melted, add the diced shallots and sliced lemongrass. Sauté for 2–3 minutes until softened and fragrant.
- Add the minced garlic and grated ginger to the pan. Stir and cook for 1 minute until fragrant — don't let it burn.
- Add 3 tablespoons Thai red curry paste and stir it into the aromatics. Cook for 2 minutes, pressing and stirring, until the paste darkens slightly and smells incredible.
- Pour in both cans of full-fat coconut milk, stirring to combine everything. Add the shredded kaffir lime leaves, 2 tablespoons coconut aminos, 1 tablespoon fish sauce, and 1 tablespoon palm sugar. Stir well. Bring to a gentle simmer and let it bubble for 5 minutes, stirring occasionally, until slightly thickened.
- Add the baby spinach or bok choy to the curry and stir until just wilted, about 1 minute.
- Gently nestle the seared salmon fillets back into the curry, skin-side up. Spoon the sauce over them. Let them warm through for 2–3 minutes over low heat — don't boil or the salmon will overcook. Squeeze in the juice of 1 lime. Taste and adjust salt, fish sauce, or a little more sugar if needed.
- Spoon fluffy jasmine rice into four bowls. Ladle the curry alongside or over the top, making sure everyone gets a beautiful salmon fillet. Top generously with the crispy shallots, fresh Thai basil leaves, and sliced red chili. Serve with lime wedges on the side. Eat immediately!