Martinique Court-Bouillon (Creole Fish in Tomato) Recipe

Caribbean Recipes

Martinique Creole Fish in Tomato Sauce

Quick Answer Court-bouillon de poisson is a Martinique Creole dish of firm fish, such as snapper or kingfish, first marinated in lime and garlic, then gently simmered in a fragrant red sauce of tomatoes, onion, scallion, thyme, parsley, and a whole Scotch bonnet. A touch of annatto (roucou) gives it a warm color, and a squeeze of lime brightens the finish. It is halal and served with rice and red beans, ready in about 50 minutes.

This is weeknight comfort food across Martinique and Guadeloupe, the kind of dish that fills a kitchen with the smell of thyme and simmering tomato before anyone has even sat down. The fish stays tender because it is poached, not fried, and the sauce carries all the brightness of the islands: garlic, lime, scallion, and just enough heat from a whole chili to warm you without setting you alight.

The trick I learned the hard way is patience with the fish. The first time I made it, I kept stirring and turning the steaks, and they broke into shreds. Left mostly alone in a gentle simmer, they hold together and soak up the sauce like a sponge.

Ready in about 50 minutes  |  Serves 4  |  One pan

Prep Time
20 min
Cook Time
30 min
Total Time
50 min
Servings
4
Intermediate Halal Dairy-Free About 340 cal / serving
Fish steaks in a rich red Creole tomato sauce with thyme and Scotch bonnet, served with rice and red beans
Court-bouillon de poisson, firm fish poached in a fragrant Creole tomato sauce, served with rice and red beans.

Why This Court-Bouillon de Poisson Works

Antillean court-bouillon is not the plain poaching liquid the French name suggests. In Martinique and Guadeloupe it means something richer: a fish stewed in a bold, tomato-forward Creole sauce built on garlic, lime, and a bouquet of thyme and scallion. Everything works together toward the same balance of savory, tangy, and gently fiery.

The lime-and-garlic marinade is the first pillar. A short soak seasons the fish right to the center and firms the flesh, so it holds its shape in the simmer instead of falling apart. It also gives the whole dish that clean, citrusy lift that defines Creole cooking.

The second pillar is the sauce base. You soften onion, garlic, and scallion, then cook down the tomatoes with thyme and a spoon of annatto (roucou) oil until the mixture turns deep and glossy. Only then does the fish go in, so it poaches in flavor rather than plain water.

The last pillar is the whole Scotch bonnet. Dropped in without piercing, it perfumes the pot with fruity aroma and a slow, background warmth, but you can lift it out before it bursts if you want the flavor without much heat. That single move is the difference between a stew that tastes flat and one that tastes like the islands.

Pro observation: The sauce is ready for the fish when it thickens enough to coat the back of a spoon and the annatto has turned it a warm brick-red. If it still looks watery, let it reduce a few minutes longer before the steaks go in.

Ingredients

Adjust servings above to rescale · Serves 4

Kitchen Measurement Converter

Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.

Want more options? Open the full tomato measurement converter.

Ingredient Notes & Substitutions

The Fish

Firm, meaty steaks hold up best. Red snapper and kingfish are traditional, but grouper, mahi-mahi, or any firm halal white fish works. Use steaks or thick fillets with the skin on so they do not fall apart in the simmer.

Annatto (Roucou)

Roucou, made from annatto seeds, gives the sauce its signature warm red color and faint earthy note. If you cannot find annatto oil, a pinch of ground annatto or sweet paprika stirred into the oil is a fair stand-in.

Scotch Bonnet

Drop it in whole and unpierced for aroma without much heat, and fish it out before serving. For more fire, pierce it once or let it simmer longer. A habanero is the closest substitute if you cannot find Scotch bonnet.

Lime and Stock

Fresh lime does double duty here, seasoning the marinade and brightening the finished pot. For the simmering liquid, a good fish stock adds depth; a splash of fish stock or lime keeps the sauce lively right to the end.

Equipment

  • Wide, heavy pan or Dutch oven
  • Shallow dish for marinating
  • Sharp knife and board
  • Fish spatula
  • Measuring spoons
  • Small bowl for spices

Before You Start

1. Marinate the fish first. Rub the steaks with lime, garlic, and salt and let them sit for at least 15 minutes while you build the sauce. This seasons the fish and firms the flesh.

2. Have your seasoning ready. Chop the onion, scallion, garlic, and tomatoes, and gather the thyme, bay leaf, and allspice before the pan is hot, because the base comes together quickly.

3. Start the rice and beans. Court-bouillon is served over rice with red beans, so get them cooking before you begin the sauce so everything lands on the table together.

Step-by-Step Instructions

1

Marinate the Fish

Pat the fish steaks dry and lay them in a shallow dish. Rub them all over with the juice of two limes, half the minced garlic, and a good pinch of salt. Turn to coat, then set aside to marinate for 15 to 20 minutes while you build the sauce. The lime will firm the flesh and season it through.

2

Build the Creole Base

Heat the annatto oil in a wide pan over medium heat until it shimmers and turns a warm red. Add the sliced onion, the rest of the garlic, and most of the scallion, and cook 4 to 5 minutes until soft and fragrant. Stir in the tomato paste and let it darken for a minute to deepen the flavor.

Onion, garlic, and scallion softening in red annatto oil with tomato paste
The annatto oil gives the base its warm red color before the tomatoes go in.
3

Simmer the Sauce

Add the chopped tomatoes, thyme sprigs, bay leaf, and allspice berries, then pour in the fish stock. Bring to a simmer and cook 10 to 12 minutes, stirring now and then, until the tomatoes collapse and the sauce thickens enough to coat a spoon. Season with salt and taste for balance.

4

Add the Fish and Scotch Bonnet

Nestle the marinated fish steaks into the sauce in a single layer and spoon a little sauce over the top. Set the whole Scotch bonnet on the surface without piercing it. Lower the heat so the liquid barely bubbles. Do not stir from here on, or the fish will break up.

Fish steaks nestled into red Creole tomato sauce with a whole Scotch bonnet on top
Lay the fish in a single layer and let the Scotch bonnet perfume the pot without piercing it.
5

Poach Gently Until Done

Cover partially and let the fish poach for 8 to 10 minutes, spooning sauce over it once or twice, until the flesh turns opaque and flakes easily with a fork. Thick steaks take longer than thin fillets, so check the center of the largest piece. For food safety, cook the fish until it reaches an internal temperature of 145 F (63 C).

6

Brighten and Serve

Carefully lift out the Scotch bonnet and the bay leaf. Squeeze in the juice of the remaining lime and scatter the parsley and reserved scallion over the top. Taste and adjust the salt. Serve the fish and sauce hot over steamed rice with red beans on the side.

Finished court-bouillon de poisson garnished with parsley and scallion, served with rice and red beans
Finish with fresh lime and herbs, then serve over rice with red beans.

Chef’s Tips From Real Kitchen Testing

1

Stop stirring once the fish is in. A gentle simmer and an occasional spoon of sauce over the top keeps the steaks whole; stirring shreds them.

2

Keep the Scotch bonnet whole and unpierced for aroma without heat. Only pierce it if you want the sauce properly fiery, and lift it out before it bursts.

3

Reduce the sauce before the fish goes in, not after. A thick, glossy base clings to the fish, while a watery one leaves it pale and bland.

Recipe Variations

Serving Suggestions

  • Steamed white rice with red beans
  • Boiled green bananas or plantain
  • A crisp avocado and lettuce salad
  • Extra lime wedges and fresh parsley

Nutrition Facts

Estimated nutrition per serving of court-bouillon
NutrientAmount per serving
Calories340
Protein38 g
Carbohydrates12 g
Fat15 g
Saturated Fat3 g
Fiber3 g
Sugar6 g
Sodium640 mg

Values are estimates per serving and vary with the exact ingredients and brands you use.

Make-Ahead Tips

The Creole sauce actually improves with a short rest, so you can build it a few hours ahead and refrigerate it. When you are ready to eat, reheat the sauce gently, add the marinated fish, and poach it fresh so the steaks stay tender. Cooking the fish to order is the surest way to avoid the dry, overdone texture that comes from reheating cooked fish.

Storage, Freezing & Reheating

Refrigerator
Keeps 2 days in an airtight container. Cooked fish is delicate, so store it gently in its sauce and eat it soon.
Freezer
Freeze the plain sauce alone for up to 2 months. Freezing cooked fish is not recommended, as it turns mushy when thawed.
Reheating
Warm gently over low heat just until hot through. High heat or long reheating dries out the fish and toughens it.

Common Mistakes to Avoid

×Overcooking the fish. Firm steaks turn dry and rubbery fast; pull them off the heat the moment they flake and reach 145 F (63 C).
×Breaking it up by stirring. Once the fish is in the sauce, leave it be and only spoon liquid over the top, or the steaks fall to shreds.
×A thin, bland sauce. Reduce the tomato base until glossy before the fish goes in, and season it well so it clings and tastes deep.

Troubleshooting

Fish falling apart? The simmer was too vigorous or the fish was stirred. Keep the liquid at a bare bubble and move the steaks as little as possible.

Sauce tastes flat? It usually needs salt and a fresh squeeze of lime at the end to wake up the tomato and herbs.

Too watery? Lift out the fish, reduce the sauce for a few minutes on higher heat, then return the fish to warm through.

Too much heat? Remove the Scotch bonnet earlier next time and never pierce it; a splash of stock or a little more tomato mellows the pot.

A Note on Martinican Creole Cooking

Martinican and Guadeloupean cooking grew from many roots, blending French technique with West African, South Asian, and Indigenous Caribbean traditions. The result is a cuisine that leans on bright citrus, garlic, and fresh herbs rather than heavy richness. In this court-bouillon you can taste all of it: the lime-and-garlic marinade that seasons the fish, the whole Scotch bonnet that scents the pot without dominating it, and the annatto (roucou) that lends the sauce its warm island color. It is home cooking at its best, honest and unfussy. If you enjoy fragrant tomato dishes, browse our full collection of tomato recipes for more ideas.

Frequently Asked Questions

In the French Caribbean it is not a plain poaching broth but a whole dish: firm fish marinated in lime and garlic, then simmered in a spiced Creole tomato sauce with onion, scallion, thyme, and a whole Scotch bonnet. It is typically served with rice and red beans.
Firm, meaty white fish holds up best in the simmer. Snapper and kingfish are traditional, but grouper, mahi-mahi, or any firm halal white fish works well. Use steaks or thick fillets so the pieces stay whole.
The flesh turns from translucent to opaque and flakes easily with a fork. For food safety, cook it to an internal temperature of 145 F (63 C). Thick steaks take longer than thin fillets, so check the center of the largest piece.
Kept whole and unpierced, the Scotch bonnet adds fragrance and only a gentle background warmth. Lift it out early or leave it out entirely for a mild pot; pierce it or simmer it longer for real heat.
Annatto gives the sauce its warm red color and faint earthiness. If you cannot find annatto oil, stir a pinch of ground annatto or sweet paprika into the cooking oil for a similar look and mild flavor.
Yes. It uses halal fish and fish stock, with no non-halal ingredients. The classic brightness comes entirely from lime and fresh herbs, so a splash of fish stock or lime is all you need to finish it.

Last updated: September 23, 2026

Was this recipe helpful?
Thanks for rating!
Timer
0:00

Leave a Comment