Quick Recipe Version (TL;DR)
Quick Ingredients
- 6 tbsp unsalted butter (85 g)
- 3/4 cup all-purpose flour (90 g) for roux + 3/4 cup (90 g) for dredging
- 3 cups whole milk (720 ml), warmed
- 5 oz serrano ham (140 g), finely diced
- 1/4 cup minced onion (40 g); 1 tbsp chopped parsley
- 1/2 tsp kosher salt (to taste), 1/2 tsp white or black pepper, 1/4 tsp ground nutmeg
- 3 large eggs, beaten
- 2 cups fine dry breadcrumbs (220 g)
- 1.5–2 quarts light olive oil or neutral oil for frying
- Aioli: 3/4 cup mayonnaise (180 g), 1 small garlic clove, 2 tsp lemon zest, 2 tbsp lemon juice, 2 tbsp extra-virgin olive oil, pinch salt
Do This
- 1. Warm milk; finely dice serrano; mince onion and chop parsley.
- 2. Melt butter; soften onion 3–4 minutes. Stir in 3/4 cup flour; cook 2 minutes.
- 3. Whisk in warm milk gradually; cook 4–6 minutes until very thick. Stir in ham, parsley, nutmeg, pepper; salt to taste.
- 4. Spread in a shallow pan; press plastic on top; chill until firm, 2 hours or overnight.
- 5. Shape into 2-inch logs or 1.5-inch balls. Dredge in flour, dip in eggs, coat in breadcrumbs.
- 6. Fry at 350°F (175°C) in batches 2–3 minutes until deep golden; drain on rack.
- 7. Mix aioli ingredients; serve warm croquettes with lemony aioli.
Why You’ll Love This Recipe
- Classic Spanish tapas: crisp on the outside, ultra-creamy béchamel inside with savory serrano ham.
- Make-ahead friendly: chill, shape, and freeze for effortless entertaining.
- Balanced flavors: nutmeg-kissed béchamel paired with bright, lemony garlic aioli.
- Approachable method: clear steps, precise temps, and pro tips for success.
Grocery List
- Produce: 1 small onion, 1 head garlic, 1 lemon, fresh flat-leaf parsley
- Dairy: Whole milk, unsalted butter, eggs
- Pantry: Serrano ham (or prosciutto), all-purpose flour, fine dry breadcrumbs, light olive oil (or neutral oil), extra-virgin olive oil, kosher salt, white or black pepper, ground nutmeg
Full Ingredients
Ham Béchamel (Croquette Base)
- 6 tbsp unsalted butter (85 g)
- 3/4 cup all-purpose flour (90 g)
- 3 cups whole milk (720 ml), warmed
- 5 oz serrano ham, finely diced (140 g)
- 1/4 cup finely minced onion (40 g)
- 1 tbsp finely chopped fresh parsley
- 1/2 tsp kosher salt, or to taste
- 1/2 tsp freshly ground white or black pepper
- 1/4 tsp ground nutmeg
Breading & Frying
- 3/4 cup all-purpose flour (90 g), for dredging
- 3 large eggs, beaten with 1 tbsp water
- 2 cups fine dry breadcrumbs (220 g)
- 1.5–2 quarts (1.5–2 L) light olive oil or neutral frying oil
Lemony Aioli
- 3/4 cup mayonnaise (180 g)
- 1 small garlic clove, grated or mashed to a paste
- 2 tsp finely grated lemon zest
- 2 tbsp fresh lemon juice
- 2 tbsp extra-virgin olive oil
- Pinch kosher salt, to taste
For Serving
- Lemon wedges
- Extra chopped parsley (optional)
- Pinch smoked paprika for dusting (optional)

Step-by-Step Instructions
Step 1: Prep aromatics and warm the milk
Finely dice the serrano ham and mince the onion. Chop the parsley. Gently warm the milk in a small saucepan over low heat until steaming but not boiling; keep it warm. Warming the milk helps create a silky béchamel without lumps.
Step 2: Start the béchamel base
In a medium saucepan over medium heat, melt the butter. Add the minced onion and cook, stirring, until translucent and soft, 3–4 minutes (do not brown). Sprinkle in the 3/4 cup flour and cook, stirring constantly, for 2 minutes to form a blond roux.
Step 3: Build a thick béchamel and season
Gradually whisk in the warm milk, about 1/2 cup at a time, whisking smooth before adding more. Cook, stirring frequently, until the mixture is very thick and pulls away from the sides, 4–6 minutes. Stir in the diced serrano ham, parsley, nutmeg, and pepper. Taste and add salt cautiously—the ham is salty. The mixture should be scoopable and quite thick; if it slumps, cook 1–2 minutes longer.
Step 4: Chill until firm
Scrape the hot mixture into a shallow dish or quarter-sheet pan and spread into an even 3/4-inch layer. Press plastic wrap directly onto the surface and chill until fully firm, at least 2 hours or up to 24 hours.
Step 5: Shape and bread the croquettes
Set up three shallow bowls: one with the dredging flour, one with beaten eggs plus 1 tbsp water, and one with the breadcrumbs. Scoop the cold béchamel (about 2 tbsp each) and shape into 2-inch logs or 1.5-inch balls. Work in batches, keeping the rest chilled. Dredge each piece in flour (shake off excess), dip in egg, then coat evenly in breadcrumbs. For extra crunch, repeat the egg and breadcrumb steps.
Step 6: Fry until crisp and golden
Heat 2 inches of oil in a Dutch oven to 350°F (175°C). Fry 4–6 croquettes at a time for 2–3 minutes, turning once, until deep golden brown. Maintain oil temperature between 340–355°F (171–179°C); adjust heat as needed. Transfer to a wire rack set over a sheet pan to drain. Keep warm in a 200°F (95°C) oven while you finish the rest.
Step 7: Make the lemony aioli and serve
Whisk together the mayonnaise, garlic, lemon zest, lemon juice, olive oil, and a pinch of salt until smooth and lightly glossy. Taste and adjust lemon or salt. Serve croquettes hot with the aioli, lemon wedges, a sprinkle of parsley, and a whisper of smoked paprika if you like.
Pro Tips
- Thick is key: the béchamel should be thick enough to hold a spoon trail; undercooked béchamel will ooze when fried.
- Work cold: keep the mixture and shaped croquettes chilled for clean shaping and tidy breading.
- Mind the salt: serrano is salty—season cautiously and taste the béchamel before adding more salt.
- Breadcrumb choice: use fine, dry breadcrumbs for classic Spanish texture; double-coat for extra crunch.
- Fry smart: a thermometer ensures 350°F oil; overcrowding drops the temp and softens the crust.
Variations
- Jamón ibérico upgrade: swap serrano for ibérico and reduce added salt; finish with a dusting of smoked paprika.
- Ham and cheese: fold 1/2 cup (50 g) finely grated Manchego or Idiazabal into the béchamel with the ham.
- Lighter cook: air-fry at 400°F (205°C) for 8–10 minutes or bake at 425°F (220°C) for 12–15 minutes, flipping once; mist with oil.
Storage & Make-Ahead
Chill the béchamel base up to 24 hours. Shaped, breaded croquettes can be refrigerated for 24 hours or frozen on a sheet pan until solid, then stored in a freezer bag for up to 3 months. Fry from frozen at 350°F (175°C) for 3–4 minutes, or bake at 425°F (220°C) for 14–17 minutes, until hot and crisp. Leftover cooked croquettes reheat well in a 375°F (190°C) oven or 375°F (190°C) air fryer for 8–10 minutes. Lemony aioli keeps 4–5 days refrigerated.
Nutrition (per serving)
Approximate for 3 croquettes with about 1–2 tbsp aioli: 600–700 calories; 14–18 g protein; 38–46 g fat; 38–44 g carbohydrates; 900–1,200 mg sodium. Values vary with frying oil absorption and exact portion size.
