Shrimp Moqueca with Coconut Milk & Lime

Real food. Real cooking. Human tested. 🍋
When life gives you lemons, make something delicious!
Gluten-Free (with gluten-free fish sauce) • Dairy-Free • Serves 4
Inspiration
I used to go to a Brazilian restaurant that made a version of this stew, and I absolutely loved it. They served theirs with white rice, farofa, fresh French bread, and traditional palm oil.
Palm oil can be difficult to find, and I don't use it often enough to justify buying a bottle just for one dish. So I decided to make my own version without it.
Instead of rice, I served mine with cooked barley. I liked the chewy texture, and it added a little extra fiber to the meal. If I were serving this for a dinner party, though, I'd probably go with traditional white rice and fresh bread since those are more universally loved.
Ingredients
For the Shrimp
1 lb raw shrimp, peeled and deveined
Juice of ½ lime
1 garlic clove, minced
½ tsp paprika
Pinch of salt
For the Moqueca
1 tbsp olive oil
1 large yellow onion, thinly sliced
1 red bell pepper, sliced
1 orange or yellow bell pepper, sliced
3 green onions, sliced, whites and greens separated
1 small serrano or jalapeño, finely chopped (optional)
3 garlic cloves, minced
1 tbsp fresh ginger, grated or pressed (about a 1-inch piece)
1 tsp paprika
½ tsp smoked paprika
2 cups frozen tomatoes
1 can (13.5 oz) full-fat coconut milk
½–1 tsp fish sauce
1–2 limes, for finishing and serving
½ cup chopped fresh cilantro
Salt and freshly ground black pepper, to taste
For Serving
Cooked white rice or barley
Fresh cilantro
Lime wedges
Fresh French bread (optional)
Directions
1. Marinate the Shrimp
Toss the shrimp with the juice of ½ lime, minced garlic, paprika, and a pinch of salt.
Let sit for 10–15 minutes while you start the stew. Avoid marinating much longer, since the lime juice can begin changing the shrimp's texture.
2. Cook the Vegetables

Heat olive oil in a wide pot or Dutch oven over medium heat.
Add the yellow onion, bell peppers, white parts of the green onions, and serrano or jalapeño if using.
Season lightly with salt and cook for 7–8 minutes, stirring occasionally, until the vegetables begin to soften.
3. Add the Aromatics
Stir in the remaining garlic, ginger, paprika, and smoked paprika.
Cook for 30–60 seconds, just until fragrant.
4. Cook Down the Tomatoes
Add the frozen tomatoes and cook uncovered for approximately 8–12 minutes, breaking them apart as they soften.
Frozen tomatoes release quite a bit of water, so allow them to reduce and become saucy before adding the coconut milk.
5. Build the Sauce
Pour in the coconut milk and add ½ teaspoon fish sauce.
Bring to a gentle simmer and cook for 8–10 minutes, stirring occasionally, until the sauce thickens slightly.
You want a rich, spoonable sauce rather than a thin broth.
6. Taste and Adjust
Before adding the shrimp, taste the sauce.
Adjust with additional salt, black pepper, fish sauce, or a squeeze of lime.
You're looking for a balance of rich coconut, savory tomatoes, warm spices, and bright acidity.

7. Cook the Shrimp
Add the shrimp and gently nestle them into the sauce.
Simmer for approximately 3–5 minutes, depending on their size, until the shrimp are opaque and cooked through. Avoid overcooking.
8. Finish and Serve
Turn off the heat and stir in most of the cilantro, the green parts of the green onions, and the juice of another ½ lime.
Taste once more and adjust as needed.
Serve over cooked barley or white rice with extra cilantro and lime wedges.
Fresh bread is especially good for soaking up the coconut-tomato sauce!
Make It Your Own
Go traditional with the sides:Â Serve with white rice, fresh French bread, and farofa for a more classic Brazilian-inspired meal.
Add more fiber:Â Substitute cooked barley for white rice. Its chewy texture is especially nice with the rich coconut sauce. Barley contains gluten, so choose rice if you need to keep the meal gluten-free.
Change the peppers:Â Green bell peppers work too, although they have a slightly less sweet flavor.
Use a different oil:Â Coconut oil works well, or use traditional dendĂŞ (red palm oil) if you have it.
Try fish instead of shrimp:Â Substitute chunks of a firm white fish, adjusting the cooking time as needed.
Use canned tomatoes:Â They're an easy substitute for frozen tomatoes and may need less time to reduce.
Make it spicier: Add extra serrano or jalapeño.
Brighten it up:Â Finish with additional fresh lime juice.
What I Thought
This turned out just how I'd hoped! I was curious whether I'd miss the palm oil, but I really didn't. It still had that rich coconut and tomato flavor I remembered, with a little smokiness from the paprika.
The barley was a nice change from rice, too. I loved the extra texture, and it was a great way to sneak a little more fiber into dinner. I'd make it the same way again for us, but probably serve it with rice and fresh bread if we had friends over.
We enjoyed the leftovers for the next couple of days, too!
Storage & Leftovers
Store leftover moqueca in an airtight container in the refrigerator for up to 2–3 days.
Reheat gently over low heat on the stovetop or in short intervals in the microwave. Shrimp can become rubbery if reheated too aggressively.
I wouldn't choose this recipe for freezing. Coconut-based sauces can sometimes separate after thawing, and shrimp are best when they haven't been cooked multiple times.
Store any leftover rice or barley separately so it doesn't absorb too much of the sauce.
A Little Tip
Let those frozen tomatoes cook down before adding the coconut milk!
Frozen tomatoes release a surprising amount of water. Taking the extra time to reduce them makes a big difference in the finished sauce.
This is also a great recipe for using frozen garden tomatoes when fresh tomatoes aren't in season.




