This Peruvian ceviche recipe is made with firm white fish, red onion, cilantro, chile and a citrusy leche de tigre with ginger, garlic and celery. The fish only needs a short time in the lime marinade, so the whole thing comes together in about 30 minutes.

I love serving ceviche with boiled sweet potato, yuca or corn to balance all that lime and heat. Add tortilla chips and a cold beer and honestly, dinner is done.
The most important part is buying fish that is suitable for raw preparation. Talk to a trusted fishmonger and tell them you’re making ceviche. This is not the time for a mystery fillet that has been hiding in the back of the refrigerator.
Why You’ll Love This Peruvian Ceviche
- It’s fast. Once everything is chopped, the fish only marinates for 5 to 20 minutes.
- The leche de tigre does all the work. Lime, ginger, garlic, celery, cilantro and ají amarillo give the fish a ton of flavor without any actual cooking.
- You can control the heat. Use the whole habanero if you like it spicy or start with less. Habaneros do not play around.
- It’s fresh and light. This is such a good warm-weather appetizer or dinner.
- The garnishes make it a meal. Sweet potato, yuca and corn mellow out the acidity and make the ceviche more substantial.
What Is Leche de Tigre?
Leche de tigre, or tiger’s milk, is the citrusy marinade used in Peruvian ceviche. Despite the name, there is no dairy involved.
There are several ways to make it. This version infuses fresh lime juice with ginger, garlic, celery, cilantro stems and ají amarillo, then strains everything before the liquid is added to the fish. The result is tart, savory, a little spicy and honestly good enough to drink.
In modern Peruvian ceviche, the fish is generally marinated very briefly rather than left in lime juice for hours. The goal is tender fish with an opaque exterior and a soft center—not fish with the texture of an eraser.

What Is the Best Fish for Peruvian Ceviche?
Use a firm, mild white fish that will hold its shape after it is cut and mixed with the marinade. Sea bass, corvina, mahi mahi and halibut are all good choices.
More importantly, buy the fish from a source you trust and explain that you plan to serve it raw. Previously frozen fish can actually be the safer choice for ceviche because proper commercial freezing helps destroy parasites. It still needs to be handled carefully and kept cold.
Lime juice denatures the proteins and makes the fish look cooked, but it does not make raw fish as safe as cooking it with heat. Pregnant people, young children, older adults and anyone with a weakened immune system should avoid raw or undercooked seafood.
Peruvian Ceviche Recipe Ingredients

You’ll only need a few simple ingredients to make this recipe. The exact measurements are listed in the recipe card below. Here’s an overview of what you’ll need:
White fish: Use sea bass, corvina, mahi mahi or halibut. Ask your fishmonger for fish appropriate for raw preparation and keep it refrigerated until you’re ready to cut it.
Red onion: Slice it very thinly, then soak it in ice water. This takes away some of the sharp bite while keeping the onion crisp.
Habanero: Habanero gives this version some serious heat. Remove the seeds and membrane for less heat, use only part of the pepper or substitute ají limo or serrano.
Cilantro: The chopped leaves go into the finished ceviche, while the stems help flavor the leche de tigre. We’re using the whole bunch. Obviously.
Limes: Freshly squeezed lime juice is essential here. Bottled lime juice will not give you the same clean flavor.
Ginger and garlic: Both infuse the lime juice without overpowering the fish. Smash them so they release their flavor and are easy to strain out.
Celery: A small amount gives the leche de tigre a savory, vegetal flavor.
Ají amarillo paste: This Peruvian yellow chile paste adds fruity heat and color. It is optional, but I really recommend it if you can find it.
Sweet potato, yuca or corn: These are optional garnishes, but the sweetness and starch are really good with the tart ceviche.
See recipe card for quantities.
How to Make Peruvian Ceviche

Pat the fish dry, remove any skin or bones and cut it into evenly sized bite-size pieces. Place it in a chilled mixing bowl, season with salt and return it to the refrigerator while you prepare everything else.
There is no need to rinse a good-quality fish fillet. Keeping the fish cold and avoiding splashes around the kitchen is the better move.
Place the thinly sliced red onion in a bowl of ice water. Let it sit while you prepare the leche de tigre, then drain it well.
This keeps the crunch but makes the raw onion much less aggressive. You still taste it; it just does not take over the entire bowl.

Squeeze the limes into a separate bowl. Add the smashed ginger, garlic, celery, cilantro stems and ají amarillo paste.
Gently squeeze or bruise the cilantro stems with your hands before adding them. Let the mixture infuse for five minutes.
Place a fine-mesh strainer over the bowl of fish and pour in the leche de tigre. Discard the ginger, garlic, celery and cilantro solids.

Gently mix the fish with the leche de tigre. Let it marinate in the refrigerator for 5 to 20 minutes, depending on how firm you like the fish.
Five minutes leaves the center softer and more translucent. Closer to 20 minutes gives you a firmer, more opaque texture.

Drain the red onion and add it to the fish with the minced habanero and chopped cilantro. Taste and add more salt if needed.
Serve immediately with boiled sweet potato, yuca, corn or tortilla chips. And beer. Definitely beer.
Top Tip
Keep the fish, bowl and leche de tigre cold from start to finish. You can chill the mixing bowl before you begin and return the ceviche to the refrigerator while it marinates.
Also, cut the fish into similar-size pieces so they cure at the same rate. Tiny pieces next to giant chunks will give you two completely different textures.
Substitutions
Fish: Sea bass, corvina, mahi mahi and halibut all work. Choose based on what your fishmonger recommends for raw preparation rather than grabbing a specific species no matter how it looks.
Habanero: Use ají limo for a more traditional Peruvian option. Serrano is also a good substitute and is usually easier to find. Jalapeño works if you want something milder.
Ají amarillo paste: You can leave it out, but it adds a fruity Peruvian chile flavor that habanero alone does not provide.
Sweet potato: Boiled yuca, regular boiled potato or extra corn can take its place.
Cilantro: Cilantro is a central flavor in this recipe, so I would not substitute parsley. If you dislike cilantro, use less or leave the chopped leaves out of the finished ceviche.

Peruvian Ceviche Variations
Make it less spicy: Remove the seeds and membrane from the habanero or replace it with serrano or jalapeño.
Use ají limo: Swap the habanero for ají limo if you can find it. It gives the ceviche a more traditional Peruvian flavor.
Add avocado: Fold in diced avocado immediately before serving. It is not part of a classic Peruvian presentation, but it tastes really good with the lime and chile.
Make ceviche tostadas: Spoon the finished ceviche onto crisp tostadas and add sliced avocado.
Try mixed seafood: Add scallops or cooked shrimp, but make sure every type of seafood is purchased and prepared appropriately for how it will be served.
What to Serve with Peruvian Ceviche
I usually serve this with boiled sweet potato or yuca, corn and tortilla chips. The starch balances the lime and chile, and the chips make it very easy to keep eating.
For a bigger spread, serve it with tostones. They are crisp, salty and basically made for scooping up ceviche. My shrimp aguachile is another good option if you want a full raw-bar situation.
You could also pair it with salmon crudo or serve it before Ensenada fish tacos. For drinks, a cold lager or a tart margarita works really well.
Can You Make Ceviche Ahead of Time?
You can prepare most of the components a few hours ahead, but do not combine the fish and lime juice until shortly before serving.
Cut the fish and keep it tightly covered in the coldest part of the refrigerator. Slice and soak the onion, chop the cilantro and prepare the leche de tigre separately. Add the marinade to the fish 5 to 20 minutes before you want to eat.
Once the lime hits the fish, the texture starts changing immediately.
How to Store Peruvian Fish Ceviche
Ceviche is best eaten as soon as it is made. If you have leftovers, refrigerate them immediately in an airtight container and eat them within 24 hours.
The fish will continue to firm up in the lime juice, so leftover ceviche will not have the same texture. Do not freeze finished ceviche. The onion, herbs and fish will all suffer, and nobody wants sad defrosted ceviche.

Frequently Asked Questions About Peruvian Ceviche
Does lime juice cook the fish in ceviche?
Not in the same way heat does. Acid denatures the proteins, turning the outside of the fish firm and opaque, but it does not reliably destroy all harmful microorganisms. Ceviche should still be treated as raw seafood.
How long should ceviche marinate?
For this recipe, marinate the fish for 5 to 20 minutes. A shorter time gives you a tender, softer center; a longer time produces firmer fish. Serve it immediately once it reaches the texture you like.
Can I use frozen fish for ceviche?
Yes, provided it was properly handled, thawed in the refrigerator and sold as suitable for raw preparation. In fact, proper commercial freezing helps destroy parasites. Ask your fishmonger instead of relying only on labels like “fresh” or “sushi-grade.”
Is Peruvian ceviche spicy?
This version can be quite spicy because it contains habanero and optional ají amarillo. Use less habanero or substitute serrano or jalapeño for a milder ceviche.
What is the difference between Peruvian ceviche and Mexican ceviche?
Peruvian ceviche usually features larger pieces of white fish, a short marinating time and leche de tigre. It is commonly served with sweet potato and corn. Mexican ceviche often marinates longer and may include tomato, cucumber, avocado or seafood such as shrimp.
Can I make ceviche without cilantro?
Yes, although it will change the flavor. I would simply leave it out instead of replacing it with parsley, which gives the dish a very different taste.
Peruvian Ceviche with Leche de Tigre
- Total Time: 30 minutes
- Yield: 4 servings 1x
- Diet: Keto, Low-Carb, Pescatarian
Description
This Peruvian ceviche recipe combines firm white fish with lime, red onion, cilantro, chile and a quick homemade leche de tigre. Serve it immediately with sweet potato, yuca or corn.
Ingredients
Ceviche
- 1 pound sea bass, corvina, mahi mahi or halibut suitable for raw preparation
- Kosher salt, to taste
- ¼ red onion, very thinly sliced
- 1 habanero pepper, seeded if desired and finely minced
- 2 tablespoons chopped fresh cilantro
Leche de Tigre
- Juice of 6 limes
- 1-inch piece fresh ginger, peeled and smashed
- 2 garlic cloves, smashed
- ½ celery stalk, smashed
- ¼ cup cilantro with stems
- 1 tablespoon ají amarillo paste, optional
For Serving
- Boiled sweet potato or yuca
- Boiled corn
- Tortilla chips, optional
Instructions
- Pat the fish dry and remove any skin or bones. Cut it into evenly sized bite-size pieces, place it in a chilled bowl and season with salt. Refrigerate while preparing the remaining ingredients.
- Place the sliced red onion in ice water and let it soak while you make the marinade.
- Add the lime juice, ginger, garlic, celery, cilantro stems and ají amarillo paste to a separate bowl. Bruise the cilantro stems with your hands and let the mixture infuse for five minutes.
- Place a fine-mesh strainer over the bowl of fish. Pour the leche de tigre through the strainer and discard the solids.
- Gently mix the fish with the marinade. Refrigerate for 5 to 20 minutes, depending on how firm you prefer it.
- Drain the red onion well. Add it to the ceviche with the habanero and chopped cilantro. Taste and add more salt if needed.
- Serve immediately with boiled sweet potato, yuca, corn or tortilla chips.
Notes
- Ask a trusted fishmonger for fish appropriate for raw preparation.
- Keep the fish and marinade refrigerated throughout preparation.
- Properly frozen fish may be preferable for raw use because freezing helps destroy parasites. Freezing does not kill every harmful germ.
- Lime juice changes the fish’s appearance and texture but is not equivalent to cooking it with heat.
- People at greater risk of foodborne illness should avoid raw or undercooked seafood.
- Start with part of the habanero if you are sensitive to heat. You can always add more.
- Prep Time: 25 minutes
- Cook Time: 5 minutes
- Category: Appetizer, Dinner
- Method: Assemble, Curing
- Cuisine: Peruvian
Nutrition
- Serving Size: 1
- Calories: 154.5
- Sugar: 3.1 g
- Sodium: 356.3 mg
- Fat: 3.7 g
- Saturated Fat: 0.4 g
- Carbohydrates: 18.2 g
- Fiber: 4.1 g
- Protein: 17.3 g
- Cholesterol: 77.5 mg







Alexa
I love leche de Tigre, but have only eaten it while dining out. Decided to try to make this recipe at home, and it was a hit! So easy and tasted fresh and delicious.
Maxine Dubois
Thanks Alexa. I am so happy you decided to give it a try!
Isa
Best recipe ever!!! I love ceviche so much and this tastes just like the restaurants.
Maxine Dubois
Thank you so much! I love this one too.
Maria Gonzalez
My family is Peruvian and this was so authentic. Thank you so much! I paired this with sweet potatoes, which was amazing!
Ivy
Can you please share why you wouldn't use previously frozen fish for this? Freezing kills parasites and I live in the mountains, far from any fishmongers or oceans. Thank you!
Maxine Dubois
When preparing ceviche, it is generally recommended to use fresh fish rather than previously frozen fish. Fresh fish has a better texture and flavor, which can enhance the overall quality of the ceviche. Freezing and thawing fish can sometimes affect its texture and make it slightly mushy.
However, if you have high-quality frozen fish and you thaw it properly, you can still make a decent ceviche. It's important to thaw the fish in the refrigerator and not at room temperature to ensure its safety and maintain its texture as much as possible.
If you're unable to find fresh fish or have no other option but to use previously frozen fish, make sure to choose a fish variety that is suitable for ceviche, such as firm-fleshed white fish (e.g., sea bass, snapper, halibut) or tuna. Thaw it gently in the refrigerator and pat it dry before marinating it in the ceviche mixture.