Gefilte Fish

Gefilte Fish

Discover this timeless gefilte fish recipe — tender, flavorful poached fish balls served in a rich homemade broth with carrots and horseradish. A classic Jewish recipe that belongs on every holiday table.

I’ll be honest — the first time I smelled gefilte fish simmering on my grandmother’s stove, I wasn’t exactly rushing to the table. But one bite of that tender, seasoned fish ball with a swipe of horseradish? Total convert. This traditional gefilte fish is the real deal, and once you make it from scratch, you’ll never look back.

What Makes This Gefilte Fish So Special

This isn’t your jarred gefilte fish situation. We’re talking freshly ground carp, pike, and whitefish, gently poached in a homemade fish stock until perfectly tender. It’s a classic Jewish recipe with deep roots and serious flavor.

The broth does double duty — it cooks the fish AND becomes that gorgeous, slightly gelled aspic when chilled. Serve it warm or cold, it’s honestly delicious either way. And yes, the horseradish is non-negotiable.

Ingredients

Traditional Gefilte Fish

Fish and Stock

IngredientAmount
Ground carp, pike, and/or whitefish (plus reserved bone cages and heads)3 lbs (1.4kg)
Medium onions, divided4 (2 lbs / 900g total)
Large celery rib, thinly sliced crosswise1
Fennel bulb, halved and thinly sliced1
Fresh flat-leaf parsley sprigs, plus more for garnishA few sprigs
Fresh dill sprigs, plus more for garnishA few sprigs

Fish Mixture

IngredientAmount
Vegetable or neutral oil2 tbsp (30ml)
Matzo meal3/4 cup (100g)
Large eggs3
Diamond Crystal kosher salt (half the volume if using table salt)3 tbsp (27g)
Sugar1 tbsp (13g)
Freshly ground white or black pepper1 tsp

For Serving

IngredientAmount
Medium carrots, peeled and sliced on the bias 1/4 inch thick4 (3/4 lb / 340g)
Preserved horseradishFor serving

Serves: 12 to 24 people

Step-by-Step Instructions

Classic Jewish Recipe

Step 1: Prep and Blanch the Fish Bones

Start by inspecting the fish heads and bone cages. Remove any leftover viscera or gills — not glamorous, but important. Rinse everything under cold running water, using your fingers to clear away traces of blood from inside the head and along the spine.

Transfer the bones and heads to a large stockpot and cover with cold water. Bring to a bare simmer over high heat, then drain everything into a colander. Rinse the pot and bones, and return it all to the pot. This step removes proteins that cloud the broth — totally optional, but it gives you a cleaner, more pristine stock.

Step 2: Build the Fish Stock

Thinly slice one onion and add it to the pot along with the celery, fennel, and herb sprigs. Cover with fresh cold water and bring to a bare simmer over medium-high heat. Let it cook low and slow for a full hour.

Your kitchen is going to smell incredible at this point. That aromatic broth is the backbone of this entire classic Jewish recipe, so don’t rush it. Low and steady wins here.

Step 3: Prepare the Fish Mixture

While the stock does its thing, finely dice the remaining three onions. Heat the oil in a small skillet over medium heat and cook half the diced onion with a pinch of salt for about 4 minutes, until softened. Set aside to cool.

Add the ground fish to a large mixing bowl and carefully pick through it to remove any stray bones or scales. Add both the raw and sautéed onion, plus the matzo meal, eggs, salt, sugar, pepper, and 6 tablespoons of cold water. Stir everything together until the mixture is well combined and slightly sticky.

“That slightly sticky texture is your friend — it means the fish balls will hold their shape beautifully in the pot.”

Cover and refrigerate the fish mixture for 30 minutes. This rest time helps everything bind together. Don’t skip it!

Step 4: Strain the Stock and Add Carrots

Once the stock is ready, strain it through a fine-mesh strainer into a large heatproof vessel. Discard the solids and rinse out the pot. Return the stock to the pot, bring it back to a simmer over medium-high heat, and add the sliced carrots.

Those bias-cut carrots aren’t just pretty — they soak up all that brothy goodness and become one of the best bites on the plate. If you love a good cozy, brothy dish, you already know how much a good carrot can do.

Step 5: Shape and Poach the Gefilte Fish

Now for the fun part. Using two large spoons, scoop up a generous ball of the fish mixture and scrape it back and forth between the spoons to form a compact, football-shaped quenelle. Slide each one gently into the simmering stock.

Shake the pot occasionally so the fish balls don’t stick together. Simmer until they’re cooked through and register 150°F (65°C) on an instant-read thermometer — about 10 to 15 minutes. If your pot is small, cook in batches and reunite them all in the broth at the end.

Step 6: Season and Serve

Taste the broth and adjust with salt and sugar. Then decide how you want to serve your gefilte fish — warm, right out of the pot with tender carrots, fresh herbs, and a generous dollop of horseradish. Or cover it up and refrigerate overnight.

Chilled gefilte fish develops a slightly gelled aspic from the broth, which is actually a beloved tradition in this poached fish dish. Both versions are totally delicious. The cold version is especially perfect for Passover prep since you can make it a day ahead.

Expert Tips and Tricks

Getting the Best Fish

Ask your fishmonger to grind the fish fresh and save you the bones and heads. Carp, pike, and whitefish is the classic combo, but you can lean heavier on whitefish if carp is hard to find. The bones are essential for that rich, flavorful stock — don’t skip them.

The Matzo Meal Question

Matzo meal acts as the binder here, giving the fish balls that characteristic tender-but-firm texture. Don’t substitute breadcrumbs — it changes the flavor and texture in ways that move it away from the traditional gefilte fish experience.

Make It Your Own

Some families add a pinch more sugar to their fish mixture for a slightly sweeter flavor — this is more common in Ashkenazi Polish-style recipes. Others go more savory and peppery. Taste a tiny pinch of the raw mixture (egg is in there, so use your judgment) or cook a small tester ball first.

If you enjoy experimenting with crowd-pleasing recipes, you might also love these crispy beef tacos — another dish that’s all about getting the texture just right.

Troubleshooting

If your fish balls are falling apart in the pot, the mixture probably needs more time to rest or a bit more matzo meal. If they’re too dense, you may have over-mixed — stir just until combined and sticky. Always let the broth stay at a gentle simmer, never a hard boil, or the fish balls can toughen up.

Storage Guide

MethodDurationNotes
RefrigeratorUp to 4 daysStore fish balls in broth in an airtight container
FreezerUp to 2 monthsFreeze separately from broth for best texture

Reheating Tips

To reheat, gently warm the fish balls in the broth over low heat until heated through. Avoid boiling — it can make the texture rubbery. If serving chilled, just pull them from the fridge 15 minutes before serving so they’re not ice cold.

No-Waste Kitchen Ideas

Don’t toss that leftover broth. Even after you’ve served everything, the remaining gefilte fish broth makes a wonderful light soup base. Stir in some noodles and extra herbs for a quick weeknight bowl — it’s got flavor for days. If you love a good broth-forward meal, you might also be inspired by this crowd-pleasing coleslaw as a fresh, crunchy side to round out the plate.

Nutritional Information

Poached Fish Dish

Based on approximately 16 servings. Values are estimates.

NutrientPer Serving (approx.)
Calories~160 kcal
Protein~20g
Fat~6g
Carbohydrates~8g
Sodium~480mg
Fiber~1g

Gefilte Fish Recipe FAQs

Can I use just one type of fish instead of a mix?

Yes! Whitefish alone works well and is the most accessible option. That said, the traditional combination of carp, pike, and whitefish gives the most complex, classic flavor. If you can find all three, go for it — your fishmonger is your best friend here.

Do I have to use fresh fish, or can I use pre-ground?

Freshly ground fish from your fishmonger is strongly preferred for this traditional gefilte fish — the texture and flavor are noticeably better. Pre-ground frozen fish can work in a pinch, but make sure it’s fully thawed and well-drained before mixing, or the texture may turn out too soft.

What’s the difference between warm and chilled gefilte fish?

Both are legitimate and delicious! Warm gefilte fish is silky and comforting, like a classic poached fish dish. Chilled gefilte fish firms up slightly and develops a savory aspic from the gelled broth, which many people actually prefer. It really comes down to family tradition and personal preference.

Can I make gefilte fish ahead of time?

Absolutely — in fact, it’s one of the best make-ahead holiday dishes out there. You can make the entire recipe one or even two days in advance. Store the fish balls in their broth in the fridge and serve chilled, or reheat gently when ready. This makes it perfect for Passover or Rosh Hashanah prep.

What should I serve alongside gefilte fish?

Horseradish is the classic and non-negotiable accompaniment. Beyond that, a light salad or a crunchy vegetable side works beautifully. If you’re building a full spread, consider something fun like garlic butter shrimp tacos for a crowd-friendly addition, or even a sweet finish with easy Nutella brownies or chocolate marshmallow swirl cookies for dessert.

Give This Recipe a Try!

Making homemade gefilte fish is one of those cooking experiences that feels genuinely meaningful. It takes a little effort, but the result — tender, flavorful fish balls in a gorgeous homemade broth — is absolutely worth every step.

Whether you’re keeping a family tradition alive or trying this classic Jewish recipe for the very first time, I hope it brings something special to your table. If you make it, I’d love to hear how it went!

Drop your thoughts in the comments below, and if you loved it, please share this recipe on Pinterest so others can discover it too. Happy cooking!

Gefilte Fish

The Most Beloved Gefilte Fish Recipe You’ll Ever Make

This timeless gefilte fish recipe features tender, flavorful poached fish balls made from freshly ground carp, pike, and whitefish, gently simmered in a rich homemade fish stock with carrots and fresh herbs. A classic Jewish recipe with deep roots, served warm or chilled with horseradish — perfect for Passover, Rosh Hashanah, or any holiday table.
Prep Time 45 minutes
Cook Time 30 minutes
Resting Time 30 minutes
Total Time 2 hours 15 minutes
Course Appetizer, Main Course
Cuisine Ashkenazi, Jewish
Servings 16 servings
Calories 160 kcal

Equipment

  • Large stockpot
  • Fine Mesh Strainer
  • Large mixing bowl
  • Small skillet
  • Instant-Read Thermometer
  • Two large serving spoons
  • Colander
  • Heatproof vessel

Ingredients
  

Fish and Stock

  • 3 lbs ground carp, pike, and/or whitefish meat plus reserved bone cages and heads
  • 4 medium onions divided (2 lbs / 900g total)
  • 1 large celery rib thinly sliced crosswise
  • 1 fennel bulb ends trimmed, halved and thinly sliced
  • fresh flat-leaf parsley sprigs a few sprigs, plus more for garnish
  • fresh dill sprigs a few sprigs, plus more for garnish

Fish Mixture

  • 2 tbsp vegetable or neutral oil 30ml
  • ¾ cup matzo meal 3½ oz / 100g
  • 3 large eggs
  • 3 tbsp Diamond Crystal kosher salt 27g; if using table salt, use half the volume
  • 1 tbsp sugar 13g, plus more to taste
  • 1 tsp freshly ground white or black pepper

For Serving

  • 4 medium carrots ¾ lb / 340g, peeled and sliced on the bias ¼ inch thick
  • preserved horseradish for serving

Instructions
 

  • Inspect the fish heads and bone cages, removing and discarding any remaining viscera and gills. Under cold running water, wash the fish heads and bone cages well, using your fingers to work away traces of blood, especially inside the head and along the spine. It doesn’t have to be perfect, but get what you can.
  • Transfer fish heads and bone cages to a large stockpot and add cold water until just covered. Set over high heat, bring to a bare simmer, then drain in a colander in the sink. Rinse out the pot and the fish bones and heads, then return everything to the pot. This step coagulates and removes proteins that can cloud the stock for a more pristine result — it’s optional but recommended.
  • Thinly slice 1 onion and add it to the stockpot along with the celery, fennel, and parsley and dill sprigs. Cover with fresh cold water, set over medium-high heat, and bring to a bare simmer. Reduce heat to maintain a bare simmer and cook for 1 hour.
  • While the stock cooks, finely dice the remaining 3 onions. In a small skillet, heat the oil over medium heat until shimmering. Add half the diced onion along with a pinch of salt and cook, stirring often, until softened, about 4 minutes. Set aside to cool.
  • Transfer the ground fish to a large mixing bowl and carefully pick through it, removing and discarding any bones or scales. Add the raw onion, sautéed onion, matzo meal, eggs, salt, sugar, and pepper. Add 6 tablespoons (90ml) cold water, then stir until very well combined and the fish mixture develops a slightly sticky texture. Let rest, refrigerated, for 30 minutes.
  • When the fish stock is ready, strain it through a fine-mesh strainer set over a large heatproof vessel. Discard the solids and wash out the stockpot. Return the fish stock to the stockpot.
  • Return the fish stock to medium-high heat and bring to a simmer. Add the sliced carrots.
  • Using 2 large serving or sauce spoons, scoop up a generous ball of fish mixture and scrape it back and forth between the 2 spoons to form a compact football shape. For a classic quenelle look, use the spoons to give it 3 defined sides. Carefully slide the fish ball into the simmering stock. Repeat with remaining fish mixture, shaking the pot occasionally to prevent sticking. Simmer until fish balls are cooked through and register 150°F (65°C) on an instant-read thermometer, 10 to 15 minutes. Cook in batches if needed, then return all fish balls to the pot.
  • Season the fish broth with salt and sugar to taste, then let cool until warm. Serve gefilte fish warm with cooked carrots, parsley and/or dill garnish, and horseradish. Alternatively, cover and refrigerate overnight, then serve chilled with carrots, herb garnish, horseradish, and, if desired, a small amount of aspic from the chilled, slightly gelled broth.

Notes

Fish selection: Ask your fishmonger to grind the fish fresh and save the bones and heads for stock. Carp, pike, and whitefish is the classic combo, but you can lean heavier on whitefish if carp is hard to find.
Matzo meal: Do not substitute breadcrumbs — it changes the flavor and texture away from the traditional gefilte fish experience.
Sweetness variation: Some families add a pinch more sugar for a slightly sweeter, Polish-style flavor. Cook a small tester ball first to adjust seasoning before forming all the fish balls.
Troubleshooting: If fish balls fall apart, the mixture needs more resting time or a bit more matzo meal. If too dense, you may have over-mixed. Always keep the broth at a gentle simmer — never a hard boil — or the fish balls can toughen.
Make ahead: Gefilte fish can be made 1–2 days in advance. Store fish balls in their broth in an airtight container in the refrigerator. Reheat gently over low heat or serve chilled.
Storage: Refrigerator up to 4 days (in broth). Freezer up to 2 months (freeze separately from broth for best texture).
No-waste tip: Leftover broth makes a wonderful light soup base — add noodles and extra herbs for a quick weeknight bowl.
Keyword Classic Jewish Recipe, Gefilte Fish, Holiday Fish, Passover Recipe, Poached Fish Dish, Traditional Gefilte Fish

Similar Recipes

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating