Good Chef Bad Chef Penang Duck Curry Recipe at Home

Updated November 3, 2026

Total time
2 hr 10 min
prep 25 min · cook 1 hr 45 min
Serves
4
portions as written
Safe temperature (USDA)
165°F / 74°C
check the thickest piece

Jump to recipe

Good Chef Bad Chef Penang Duck Curry Recipe at Home

Penang duck curry is a rich Malaysian-style curry of duck gently braised in coconut milk with fragrant curry paste, potatoes, and bright lime. This home-style version draws on Penang curry flavors—often warm, savory, slightly sweet, and finished with peanuts—without claiming to reproduce any one chef’s exact recipe.

Ingredients

  • 4 bone-in duck legs, about 2½ lb (1.1 kg) total
  • 1 tablespoon (15 ml) neutral oil, such as canola or sunflower oil
  • ⅓ cup (80 ml) Penang curry paste
  • 1 medium yellow onion, finely sliced, about 1 cup (150 g)
  • 4 garlic cloves, finely chopped, about 12 g
  • 1 tablespoon (15 g) finely grated fresh ginger
  • 2½ cups (600 ml) unsweetened coconut milk, well stirred
  • 1 cup (240 ml) water or unsalted chicken stock
  • 1 tablespoon (15 ml) fish sauce
  • 1 tablespoon (12 g) palm sugar or light brown sugar
  • 12 oz (340 g) waxy potatoes, such as Yukon Gold or red potatoes, cut into 1-inch (2.5 cm) pieces
  • 4 makrut lime leaves, torn once, or 1 teaspoon (2 g) finely grated lime zest
  • ⅓ cup (45 g) roasted unsalted peanuts, roughly chopped
  • 1 tablespoon (15 ml) fresh lime juice, plus lime wedges for serving
  • ½ teaspoon (3 g) fine salt, or to taste, and ¼ teaspoon (0.5 g) black pepper
  • ½ cup (15 g) loosely packed Thai basil or cilantro leaves, for serving

Penang curry paste is sold in many Asian grocery stores and some supermarkets. Its heat and saltiness vary, so check the label and start with less if you are sensitive to chile. If you cannot find it, use a red Thai curry paste; it will make the curry somewhat sharper and less characteristically Penang-style. Makrut lime leaves are also sometimes labeled kaffir lime leaves. If unavailable, lime zest gives a fresh citrus aroma, though it lacks the leaves’ distinctive floral note.

Instructions

  1. Prepare the duck and vegetables. Pat the duck legs thoroughly dry with paper towels; dry skin browns more readily and renders fat better. Trim only loose flaps of excess skin or fat, leaving the skin attached to the legs. Season both sides with the salt and pepper. Slice the onion, chop the garlic, grate the ginger, and cut the potatoes into evenly sized pieces so they cook at about the same rate.
  2. Render and brown the duck. Heat a large, heavy pot or Dutch oven over medium heat. Add the oil, then arrange the duck legs skin-side down without crowding; work in batches if needed. Cook for 8–10 minutes, adjusting the heat so the skin renders and turns golden rather than scorching. Turn and brown the other side for 2–3 minutes. Transfer the legs to a plate. Carefully spoon off excess rendered fat, leaving about 1 tablespoon (15 ml) in the pot. Save the strained fat for another use if you like, and handle it carefully while hot.
  3. Fry the curry paste. Lower the heat to medium-low. Add the curry paste to the duck fat and stir for 2–3 minutes, until fragrant. Stir continuously and keep the paste from catching on the bottom; if it begins to stick, add a spoonful of the measured water. Add the onion, garlic, and ginger. Cook for 3–4 minutes, stirring, until the onion starts to soften and the aromatics smell fragrant.
  4. Build the braising liquid. Pour in the coconut milk gradually, scraping the browned bits from the base of the pot. Add the water or stock, fish sauce, sugar, and makrut lime leaves. Stir to combine and bring the liquid just to a gentle simmer. Taste a little of the sauce: it should be savory, lightly sweet, and aromatic, but it may taste stronger than the finished curry because the potatoes and duck will absorb some seasoning.
  5. Braise the duck. Return the legs to the pot, skin-side up, with any juices from the plate. The liquid should come partway up the legs, not completely submerge them. Cover and simmer gently for 40 minutes. Keep the bubbles small; a hard boil can make the duck tough and cause the coconut milk to separate. Turn the legs once if the liquid is not reaching them evenly.
  6. Add potatoes and finish cooking. Nestle the potatoes into the sauce around the duck. Cover and simmer for 30–40 minutes, until the potatoes are tender and the duck is easy to pierce near the joint. Check the thickest part of each leg with a food thermometer, avoiding the bone: USDA FSIS gives duck a safe minimum internal temperature of 165°F (74°C). If a leg has not reached that temperature, or is still firm, continue simmering and check again after 5–10 minutes. Duck legs often become more tender above the minimum temperature, so use tenderness as well as the thermometer reading to judge the braise.
  7. Balance and serve. Remove the lime leaves. Stir in the lime juice and taste the sauce, adding a little more fish sauce for savoriness, sugar for balance, or lime juice for brightness as needed. If the sauce seems thin, simmer uncovered for a few minutes; if it is too thick, loosen it with a splash of water. Scatter the peanuts and Thai basil or cilantro over the curry and serve hot.

Tips

  • Choose paste with care. Curry pastes differ in salt, spice, and strength. If yours is very hot or salty, begin with ¼ cup (60 ml), then add more after the coconut milk goes in. You can always increase the seasoning, but it is difficult to remove excess salt or chile.
  • Keep the braise gentle. A low, steady simmer helps the duck soften and keeps the coconut milk sauce smooth. If you see vigorous bubbling, reduce the burner. A heavy pot with a well-fitting lid makes the heat easier to control.
  • Use the skin and fat thoughtfully. Browning skin-side down first adds flavor to the pot, but duck can release a surprising amount of fat. Pour off most of it before frying the paste, or the finished curry may feel greasy. Leave a thin coating so the paste still fries properly.
  • Adjust the sauce at the end. Coconut milk and potatoes soften spice and salt, while lime juice brings the flavors into focus. Make small additions, tasting after each one. If substituting brown sugar for palm sugar, use the same amount; the result will be a little more molasses-like.

Serving Suggestions

Serve the curry in shallow bowls with steamed jasmine rice, which soaks up the coconut sauce without competing with its fragrance. Rice noodles or plain roti are good alternatives if you want something different; offer them alongside the curry rather than simmering them in the pot. Add lime wedges, extra chopped peanuts, and a few fresh basil or cilantro leaves at the table so each person can adjust the acidity and crunch.

The duck and potatoes make this a substantial main course, so a simple vegetable side is enough. Try quick-cooked green beans, lightly dressed cucumber, or blanched greens. A crisp, mildly acidic side helps balance the curry’s richness. Keep extra fish sauce or chile on the table only if guests want to adjust their own portions, since the curry paste may already bring plenty of heat and salt.

Variations

For a milder curry, reduce the paste to ¼ cup (60 ml) and add more after tasting. For extra heat, serve sliced fresh chile on the side rather than increasing the paste before you know its strength. If peanuts are unsuitable, omit them and garnish with toasted cashews or fried shallots; each changes the crunch and flavor, but neither is essential to the sauce.

You can replace the potatoes with 12 oz (340 g) of peeled sweet potato, cut into similar-sized chunks. It cooks in roughly the same part of the braise but makes the curry sweeter and softer, so add lime juice gradually at the end. For a less rich version, use 2 cups (480 ml) coconut milk plus ½ cup (120 ml) water instead of 2½ cups coconut milk. The sauce will be lighter and less creamy. Chicken legs can also be used, but check each piece with a thermometer and allow enough simmering time for it to become tender; do not assume it is ready just because the duck timing has elapsed.

Storage and Reheating

Refrigerate leftover curry within 2 hours of cooking, using a shallow covered container so it cools promptly. It keeps for 3–4 days in the refrigerator. The sauce may firm up when cold because of the coconut milk and rendered fat; that is normal. If a thick layer of fat sets on top, remove some before reheating, or stir it back in for a richer sauce.

Reheat only the portion you plan to eat in a covered saucepan over low to medium-low heat, stirring gently and adding a splash of water if the sauce is too thick. Heat leftovers to 165°F (74°C), checking the center with a food thermometer. Avoid a rolling boil, which can separate the sauce and make the duck fibers seem drier. For microwave reheating, cover loosely, stir partway through, and check the temperature in more than one spot. Freeze leftovers in a sealed freezer-safe container for up to 2–3 months for best quality; thaw in the refrigerator before reheating.

Frequently Asked Questions

Can I make Penang duck curry ahead?
Yes. Cook it a day ahead, cool it promptly, and refrigerate it in a covered container. The flavors mingle as it rests, and the sauce may taste even more rounded the next day. Reheat gently to 165°F (74°C), adding a little water if needed. For the freshest garnish, add the peanuts, herbs, and final lime juice just before serving.

Can I make this recipe without a Dutch oven?
Use a deep, heavy saucepan or a lidded oven-safe pot instead. It needs enough room to brown the legs without crowding and to hold the duck, potatoes, and braising liquid. A thin pan can develop hot spots, so use low heat and stir the sauce carefully. The stovetop method is important here because the simmer should remain gentle and easy to monitor.

Why is my coconut curry sauce oily or separated?
A little sheen from duck fat is expected, but a greasy sauce often means too much rendered fat stayed in the pot. Spoon off excess before frying the paste. Separation can also happen if the curry boils hard. Lower the heat and keep it at a quiet simmer; if the sauce separates slightly, stir in a tablespoon or two of warm water while reheating.

Can I use boneless duck instead of duck legs?
Bone-in legs are the better choice for this braise because they stay moist during the longer cooking time and contribute flavor to the sauce. Boneless duck breast is leaner and cooks much faster, so it is not a direct, same-timing substitute. If using boneless duck thighs, begin checking them earlier and use a thermometer to confirm the safe minimum of 165°F (74°C), while avoiding unnecessary extra cooking once they are tender.

How can I tell when the duck is tender?
Check the thickest part of a leg with a food thermometer, keeping the probe away from the bone, and confirm it reaches at least 165°F (74°C). Then pierce the meat near the joint with a fork: it should feel tender, not rubbery or resistant. If it is safe but still firm, continue the gentle braise in short intervals. The exact time varies with leg size and how steadily the pot simmers.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).