Quick Recipe Version (TL;DR)
Quick Ingredients
- 1.5 lb (680 g) firm white fish fillets, cut into large chunks
- Salt, black pepper, lemon juice
- 2 tbsp vegetable oil or lard + 2 tbsp butter
- 2 medium onions, finely chopped; 1 green bell pepper, sliced
- 2 cloves garlic, minced
- 2 tbsp Hungarian sweet paprika + 1 tsp smoked paprika (+ pinch hot paprika, optional)
- 2 tbsp tomato paste; 1 cup (240 ml) fish or chicken stock
- 3/4 cup (180 ml) sour cream + 2 tbsp flour
- For spaetzle: 1.5 cups (195 g) flour, 3 eggs, 1/2 cup (120 ml) milk, 1/2 tsp salt, 4 tbsp butter
- Fresh parsley, extra paprika for garnish
- OR 2 lb (900 g) waxy potatoes for boiled potatoes instead of spaetzle
Do This
- 1) Season fish with salt, pepper, and a squeeze of lemon; set aside.
- 2) Sauté onions and bell pepper in oil and butter until golden and soft.
- 3) Stir in garlic, paprikas, and tomato paste; cook briefly, then add stock and simmer 10–15 minutes.
- 4) Nestle fish into the sauce, cover, and gently simmer 8–10 minutes until just cooked.
- 5) Whisk sour cream and flour, temper with hot sauce, then stir back in and simmer gently until thick and silky.
- 6) Meanwhile, cook spaetzle batter (or potatoes) in boiling salted water; drain and toss with butter.
- 7) Serve fish and paprika sauce generously over buttered spaetzle or potatoes; garnish with parsley and extra paprika.
Why You’ll Love This Recipe
- Classic Hungarian comfort food: tender fish in a velvety, paprika-rich sauce.
- Simple, affordable ingredients that turn into something special and cozy.
- Flexible: serve over homemade spaetzle for a traditional feel or boiled potatoes for a quicker option.
- Great make-ahead sauce that tastes even better after the flavors mingle.
Grocery List
- Produce: 2 onions, 1 green bell pepper, 2 garlic cloves, 1 lemon, fresh parsley, 2 lb (900 g) waxy potatoes (if using), optional chives for garnish
- Dairy: Sour cream, butter, eggs, milk
- Pantry: Firm white fish (fresh or frozen), all-purpose flour, vegetable oil or lard, Hungarian sweet paprika, smoked paprika, hot paprika or cayenne (optional), tomato paste, fish or chicken stock, bay leaf (optional), caraway seeds (optional), salt, black pepper
Full Ingredients
For the Fish and Marinade
- 1.5 lb (680 g) firm white river fish fillets (carp, catfish, pike, perch, or similar; skinless, pin bones removed)
- 1/2 tsp fine sea salt
- 1/4 tsp freshly ground black pepper
- 1 tbsp fresh lemon juice
For the Paprika Sauce
- 2 tbsp vegetable oil or rendered lard
- 2 tbsp unsalted butter
- 2 medium yellow onions, finely chopped
- 1 medium green bell pepper, cored and thinly sliced (traditional and recommended)
- 2 cloves garlic, minced
- 2 tbsp Hungarian sweet paprika (preferably fresh and high quality)
- 1 tsp smoked paprika (Hungarian smoked or Spanish; adjust to taste)
- 1/4–1/2 tsp hot paprika or cayenne pepper (optional, to taste)
- 2 tbsp tomato paste
- 1 cup (240 ml) fish stock or low-sodium chicken stock
- 1 small bay leaf (optional)
- 1/2 tsp lightly crushed caraway seeds (optional but very Hungarian)
- 1/2 tsp fine sea salt, plus more to taste
- 1/4 tsp freshly ground black pepper
- 1–2 tsp fresh lemon juice or white wine vinegar, to brighten at the end
For the Sour Cream Finish
- 3/4 cup (180 ml) full-fat sour cream, at room temperature
- 2 tbsp all-purpose flour (to help stabilize and thicken the sauce)
For the Buttered Spaetzle (Traditional Option)
- 1.5 cups (195 g) all-purpose flour
- 1/2 tsp fine sea salt
- 3 large eggs
- 1/2 cup (120 ml) milk (whole or 2%)
- 2 tbsp unsalted butter, melted (for the batter)
- 2 tbsp unsalted butter (for finishing and tossing the cooked spaetzle)
- 2–3 tbsp finely chopped fresh parsley
For Boiled Potatoes (Quicker Option)
- 2 lb (900 g) waxy potatoes (Yukon Gold or similar), peeled and cut into large chunks
- 1–2 tsp fine sea salt (for the cooking water)
- 2 tbsp unsalted butter
- 1–2 tbsp chopped fresh parsley or chives
For Serving
- Extra sour cream, for dolloping (optional)
- Finely chopped fresh parsley
- A pinch of Hungarian sweet or smoked paprika for sprinkling on top
- Lemon wedges, optional

Step-by-Step Instructions
Step 1: Prep the Fish and Vegetables
Pat the fish fillets dry with paper towels and cut into large chunks, about 2–3 inches (5–7 cm) each. Place them in a shallow bowl, season with the 1/2 teaspoon salt, 1/4 teaspoon black pepper, and 1 tablespoon lemon juice. Gently toss to coat, then cover and refrigerate while you start the sauce. This light seasoning helps the fish stay flavorful without making it too salty once it simmers in the sauce.
Finely chop the onions, slice the green bell pepper into thin strips, and mince the garlic. Have the paprikas, tomato paste, and stock measured and ready to go before you start cooking; paprika can burn quickly, so it is helpful to move smoothly once you add it to the pan.
Step 2: Build the Onion and Pepper Base
In a large, wide, heavy-bottomed pot or deep skillet, heat the 2 tablespoons of oil (or lard) and 2 tablespoons butter over medium heat until hot but not smoking. Add the chopped onions and a pinch of salt. Cook, stirring often, for 8–10 minutes, until the onions are very soft and turning light golden. Do not rush this step; gently caramelized onions are the flavor backbone of paprikash.
Stir in the sliced green bell pepper and continue to cook for another 5–7 minutes, until the pepper is tender and the onions are a deeper golden color. Add the minced garlic and cook for 30–45 seconds, just until fragrant.
Step 3: Add Paprika and Create the Sauce Base
Remove the pot from the heat for a moment (this helps prevent burning the paprika). Sprinkle in the 2 tablespoons Hungarian sweet paprika, 1 teaspoon smoked paprika, and hot paprika or cayenne if using. Stir constantly for 20–30 seconds, coating the onions and peppers in the paprika-infused fat. The mixture should be fragrant and a deep red color.
Stir in the 2 tablespoons tomato paste and mix well. Return the pot to medium heat. Gradually pour in the 1 cup (240 ml) stock while stirring, scraping up any browned bits from the bottom of the pan. Add the bay leaf and lightly crushed caraway seeds, if using. Season with 1/2 teaspoon salt and 1/4 teaspoon black pepper.
Bring the sauce to a gentle simmer, then reduce the heat to low and let it simmer uncovered for 10–15 minutes. The flavors will concentrate, and the sauce will thicken slightly to a rich, brick-red base.
Step 4: Gently Poach the Fish in the Paprika Sauce
Once the sauce has simmered and tastes rich and well-rounded, taste and adjust with a little more salt if needed. Remove the bay leaf if you prefer a smoother sauce at this stage.
Carefully nestle the marinated fish chunks into the sauce in a single layer, spooning some sauce over the top of each piece. The fish should be mostly submerged. Cover the pot with a lid and keep the heat low so the sauce is just barely simmering, not vigorously boiling.
Cook for 8–10 minutes, depending on the thickness of your fish, until it flakes easily with a fork but is still moist. Avoid stirring too much to keep the fish pieces intact; instead, gently shake the pan if you need to move things around. Turn off the heat while you prepare the sour cream mixture.
Step 5: Finish with Sour Cream for a Velvety Paprikash
In a small bowl, whisk together the 3/4 cup sour cream and 2 tablespoons flour until completely smooth, with no lumps. This mixture will thicken the sauce slightly and keep the sour cream from curdling.
To prevent the sour cream from separating, temper it: spoon 2–3 ladles of the hot paprika sauce (without fish) into the bowl with the sour cream, whisking constantly until smooth and warm. Then pour this warmed sour cream mixture back into the pot, gently stirring it into the sauce around the fish.
Turn the heat back to low and warm the paprikash for 3–5 minutes, just until the sauce is slightly thickened and silky. Do not let it boil once the sour cream is added. Taste and brighten the flavor with 1–2 teaspoons lemon juice or a splash of white wine vinegar, and adjust salt and pepper as needed. Keep warm on the lowest heat while you prepare the spaetzle or potatoes.
Step 6: Make the Buttered Spaetzle (Traditional Option)
Bring a large pot of well-salted water to a boil. In a medium bowl, whisk together 1.5 cups (195 g) flour and 1/2 teaspoon salt. In a separate bowl, beat the 3 eggs, then whisk in the 1/2 cup (120 ml) milk and 2 tablespoons melted butter. Pour the wet ingredients into the flour mixture and stir with a wooden spoon until you have a thick, sticky batter. It should be looser than bread dough but thicker than pancake batter. Let it rest for 5–10 minutes.
To form spaetzle, you can use a spaetzle maker, a large-holed grater, or a colander with wide holes. Working in batches, press or scrape the batter through the holes directly into the simmering water. The spaetzle will sink at first and then float to the top as they cook.
Once they float, cook for 1–2 minutes more, then use a slotted spoon to transfer them to a bowl. Repeat with remaining batter. Toss the warm spaetzle with the remaining 2 tablespoons butter and the chopped parsley. Season lightly with salt to taste. Keep warm.
Step 7: Or Prepare Simple Buttered Potatoes
If you prefer potatoes, place the peeled and chunked potatoes in a large pot and cover with cold water by about 1 inch (2.5 cm). Add 1–2 teaspoons salt and bring to a boil. Reduce heat to a gentle simmer and cook for 12–15 minutes, until the potatoes are just tender when pierced with a knife.
Drain well, return to the warm pot, and add 2 tablespoons butter. Gently toss until the butter melts and coats the potatoes. Sprinkle with chopped parsley or chives and season with additional salt if needed. Keep warm until serving.
Step 8: Serve the Hungarian Fish Paprikash
To serve, spoon a generous bed of buttered spaetzle or potatoes onto each warm plate or shallow bowl. Gently lift pieces of fish from the sauce and arrange them on top. Ladle plenty of the creamy paprika sauce over and around the fish and starch.
Garnish with a small dollop of sour cream, a sprinkle of fresh parsley, and a light dusting of sweet or smoked paprika. Add lemon wedges on the side, if you like a brighter finish. Serve immediately while hot, with crusty bread to mop up any remaining sauce.
Pro Tips
- Use good paprika: Hungarian sweet paprika loses flavor quickly. If yours is older than a year or smells faint, buy a fresh tin for the best color and aroma.
- Control the heat: Paprika burns easily and turns bitter. Always pull the pan off the heat briefly when adding it, and cook it only 20–30 seconds before adding liquid.
- Gentle on the fish: Use a wide pan and low heat so the fish can poach gently without breaking apart. Avoid vigorous stirring; instead, swirl or gently shake the pan.
- Temper the sour cream: Never add cold sour cream directly to boiling sauce. Tempering with hot liquid first keeps the sauce smooth and velvety.
- Adjust thickness: If the sauce is too thick, add a splash of stock or water. If it is too thin, simmer gently uncovered for a few minutes to reduce.
Variations
- Spicier paprikash: Use more hot paprika or add a finely chopped hot pepper with the onions for a fiery version closer to some regional Hungarian styles.
- Mixed fish and seafood: Combine firm white fish with a few large shrimp or pieces of salmon for a mixed fish paprikash, adjusting cooking time so everything just cooks through.
- Lightened-up version: Swap half the sour cream for plain Greek yogurt and skip the flour; gently warm without boiling for a slightly lighter but still creamy sauce.
Storage & Make-Ahead
The paprika sauce itself (without the fish) can be made up to 2 days in advance. Prepare through the end of Step 3, cool, and refrigerate in an airtight container. When ready to serve, gently reheat the sauce, then proceed with poaching the fish and finishing with sour cream. Fully cooked fish paprikash will keep in the refrigerator for up to 2 days, but the fish is at its best on day one; reheat very gently over low heat to avoid overcooking. Spaetzle can be cooked a day ahead, chilled with a little oil or butter to prevent sticking, then reheated in a skillet with butter. Boiled potatoes are best made fresh, though leftover potatoes can be pan-fried in butter the next day for a delicious side.
Nutrition (per serving)
Approximate values for 1 serving of fish paprikash with a portion of buttered spaetzle (out of 4 servings): about 650–700 calories, 35–40 g protein, 30–35 g fat, 55–60 g carbohydrates, 3–4 g fiber, and 900–1100 mg sodium (depending on salt and stock). Using boiled potatoes instead of spaetzle will slightly reduce the calories and fat. These numbers are estimates and will vary based on exact ingredients and portion sizes.
