
Everyone is always looking for that ever-evasive 20-minute, delicious, nutritious and relatively affordable one-pan dinner, and let me just say Tomato Fish Curry is here to come to the rescue! This is one of my absolute favorite one-pan meals. It’s light but still filling, creamy while being dairy free, and absolutely delicious, while still using only minimal ingredients. It takes my favorite fool-proof combo of tomatoes and chilies, adds a bit of garlic and ginger (because they make everything better), and finishes with just a touch of coconut milk. The result is a light, creamy curry sauce that is ready to gently poach your whitefish of choice. After that, you just plate and eat with either bread, grains or the fluffiest of white rice.
I’m getting excited just thinking about when I can eat it again. If I could hyper-focus on one dinner for the rest of summer, it would be this.

Table of contents

What is “whitefish” exactly?
Whitefish tends to be an all-encompassing term for fish from the Atlantic, that are usually….well….white. Revolutionary, I know. But it’s helpful to know! Because whitefish tend to cook the same, they tend to be interchangeable in recipes such as this. Here I am using halibut, but fluke, haddock or flounder also work marvelously. Even fish like mahi-mahi are great, as long as it is a delicate, thin and flaky white fish. A “whitefish,” if you will.

Ingredients you will need for this Tomato Fish Curry
I like this curry because it is big on flavor but low on ingredients (and if you know me, I’m a maximalist, so this is quite the feat!)
This recipe only uses the following, and the flavor it delivers is HUGE.
- 3 tablespoons extra-virgin olive oil
- 2 small birdseye chilies, finely sliced
- 2 pints cherry tomatoes, assorted colors, halved
- 1 tablespoon freshly grated ginger
- 3 large garlic cloves, grated
- Diamond Crystal kosher salt
- 1/3 cup full-fat coconut milk
- 1 tablespoon lime juice, plus more to taste, about 1 lime
- 3/4 cup fresh cilantro, roughly chopped
- 1/2 pound halibut or other whitefish of choice
- Freshly ground black pepper

Tips and tricks to poach fish on top of a curry
The best part of this recipe is how quickly you can gently steam a fish on top of a flavorful tomato curry – no technique involved! Here the steam from the pan does all the work, but I do have some tips as you embark on your first Tomato Fish Curry cooking trial:
- Lay the fish as flat as possible on top of the curry. You don’t want it dipping into the curry on either side, because then it won’t cook as evenly.
- Try not to peak until the 4-5 minute mark – this lets out a ton of heat, and fish doesn’t really love that. If you think your fish slices are super thin and only need a bit of time, check in at four minutes.
- When the fish flakes away from itself, it’s done. You can also get a thermometer to check that its internal temperature is at least 135°F if you really want to be certain.

FAQ
If you aren’t worried about a light fish smell in the fridge for a few days, I love this recipe for meal prep. I don’t even store it separately from its components! I just take the two portions from this recipe and portion them into two air-tight containers. They last in the fridge for two days; three days is possible, but pushing it just a bit.
Absolutely. This recipe can be scaled up to feed four, but if you are only using one pan, I’d suggest keeping the tomato and aromatic amounts the same, and just adding two more fish fillets to the top! If you have two pans you can use at the same time, just double the recipe and you’ll have dinner for four in no time. If you plan to do the former, make sure you have extra rice or bread around to make sure no one feels forgotten by the smaller amount of tomatoes available.
This is a great question! Birdseye chili can be subbed for Fresno peppers (just use one though!), Thai chilies, habanero pepper (also only one) or serrano peppers if you are in a pinch. You can also use 1/2 teaspoon of red pepper flakes for the easiest sub! Coconut milk can be subbed with heavy cream, but I really prefer the flavor of coconut for this. As for the fish, I have more suggestions in the section above!

Looking for similar recipes?
You’ve come to the right place – I love one-pan recipes, and here are a few other meal thought-starters to keep in mind!




And that’s everything for this Tomato Fish Curry!
If you make it, please tag me on Pinterest or Instagram so I can see! It’s my favorite thing to scroll through stories and see what you all are making.
And of course feel free to leave any questions, comments or reviews! This is the best place to reach me, and I’d love to hear from you <3
Watch the recipe here
The video may not fully represent the recipe. For best results, follow the instructions as written.

Tomato Fish Curry
Equipment
- 1 high sided sauté pan
Ingredients
- 3 tablespoons extra-virgin olive oil
- 2 small birdseye chilies finely sliced
- 2 pints cherry tomatoes assorted colors, halved
- 1 tablespoon freshly grated ginger
- 3 large garlic cloves grated
- Diamond Crystal kosher salt
- 1/3 cup full-fat coconut milk
- 1 tablespoon lime juice plus more to taste, about 1 lime
- 3/4 cup fresh cilantro roughly chopped
- 1/2 pound halibut or other whitefish of choice
- Freshly ground black pepper
Instructions
- Place a large high-sided sauté pan over medium heat. Ensure the pan has a tight-fitting lid nearby.
- Add the olive oil to the pan and let it heat up for 1-2 minutes. Add in the chilies and cook for 30 seconds. Add in the tomatoes and stir to coat in the olive oil.
- Cook the tomatoes for 2-3 minutes before adding the garlic and ginger. Stir to combine, then cook, stirring occasionally for 8-9 minutes or until the tomatoes are collapsed and juicy looking. Season with salt.
- Add the coconut milk and stir to combine. It will be a light color, but it will get darker as the tomatoes continue to simmer. Add the lime juice. Stir, taste and season with more salt or lime juice as you prefer.
- Add in 1/2 cup of the cilantro and stir to combine. Let the curry simmer gently while you prepare the fish.
- Divide the fish into two fillets and season the tops with salt and a few cracks of black pepper.
- Nestle the fish on top of the curry, cover with the lid and let the steam gently cook the fish for 5 minutes or until cooked through. This time will vary based on the thickness of your fish, so go a little longer if you feel the need to.
- When the fish have reached an internal temperature of at least 135°F, remove the pan from the heat and garnish with the remaining cilantro.
- Serve alongside grains, pita or fluffy white rice and enjoy!
Made with tofu and it was so good!! Such an easy, filling meal
I made this last night and it was a hit! I used catfish (sustainable & what I had)& chiles I had (variety unknown) and this turned out great! Very forgiving to alternations (roughly doubled the recipe and used a full can of coconut cream from TJ’s) and totally missed that it should be served with a carb so we just had it on its own. So good. So easy. Thank you Justine!
Hello! I’m excited to try this recipe but was wondering about the actual Curry? You don’t have any curry ingredient listed, is this correct? Thank you!!!
Hi! I am by no means an expert, but in an effort to be as sensitive and appropriate when naming recipes, anything with coconut milk as a base I categorize as a curry recipe for blog purposes! This can get tricky, seeing as “curry” is an unregulated and not totally defined term, usually referencing East Asian and South Asian cuisine. Now it seems curry spice, curry pastes, and curry powders also fall into the vague categorization. That being said, you don’t need a curry spice for something to be a curry, so I promise the ingredient isn’t missing!
Such a stunning summer recipe! Super fast and easy, incredibly flavorful, wholesome and light. This was perfection. Can’t wait to make this again. We used halibut and served with steamed basmati rice. Highly recommend!!
Used TJs branzino and a whole assortment of tomatoes. The lightness and acidity were perfect. Definitely making this again.
This was AMAZING! I used tilapia because it’s budget friendly and it turned out amazing. I can’t wait to eat the leftovers tomorrow.
This was excellent! I used a spicy jalepeno from my garden instead of the chiles. I also used the Trader Joe’s frozen Branzino filets and placed them flesh side down when cooking- and was able to peel the skin off easily when they finished!
Added lemongrass, a splash of soy sauce and a drizzle of maple syrup, reduced the amount of coconut milk and served with leftover jasmine rice. Delish!
Now THAT sounds phenomenal
Do you think you could make all of it ahead of time (except fish) and then simmer the sauce and fish at a later time? Would it still hold up
Hi! I think you could but I’d hold off on adding the cilantro until the day you add the fish too, otherwise the green turns brown and doesn’t look as appetizing. I know I’m not Justine but I learned this lesson from a similar situation.
Justine snacks has done it again! New-ish follower, recipe lover ever since: currently enjoying this dish mid-workday on a bit of microwave-pack wild rice and it brightened my whole day! Did the dish with mahi mahi and served it with some arugula on a bed of rice and topped with green onions. This, the harissa artichokes, and the garlic scape soup are all tied for my fave recipe. Thanks!!
Absolutely love this recipe – we add anchovies or anchovy paste to ours for fun too!
Loved this! I doubled the garlic because it’s a recipe rule of thumb, I also did Salmon because I prefer it. Over rice this was absolutely delicious and will definitely be entering my summer recipe rotation!
Double garlic is a rule I truly cannot argue with haha