Panang Neua (Thai Panang Beef Curry) Recipe

A rich, nutty Thai panang curry, paired with tender braised short ribs.

Photograph: Derek Lucci

Why It Works

  • Browning and braising the beef separately builds layers of flavor by also creating a coconut milk-infused stock that is used for the curry, and rendered beef fat that is used to cook the curry paste.
  • Whole-roasted shallots add subtle allium sweetness to the curry.
  • The bright, salty-sweet combination of palm sugar, fish sauce, and tamarind balances the richness of the beef and peanut-spiked panang curry paste.

A multi-dish Thai meal would not be complete without a gaeng (curry) present at the table, alongside salads, side dishes, relishes, and rice. Panang neua (panang beef curry) is one of the most well-known curries in Thai cuisine, distinguished by its rich, saucy texture and nutty flavor. While many Thai curries are quite brothy, panang curry has a thick, spoon-coating consistency due to the peanuts that are pounded into a red curry paste along with spices such as cumin, coriander, white peppercorns, and nutmeg.

Quick-cooking, lean cuts of beef such as sirloin or strip steak are a popular choice for panang, with the meat sliced thin and simmered briefly until cooked through with the curry paste and coconut milk. For this version, I use thick, bone-in short ribs that are browned and braised with water and coconut milk. While browning meat is not a common practice for many Thai curries, some cooks do deep fry meat before simmering, and the searing step in this recipe is a nod to that practice. Along with giving us tender, Maillard-browned short ribs, the braising process also provides two beefy byproducts that are used for making the final curry: rendered fat that is used to fry the curry paste, and a flavorful cooking liquid that is paired with coconut milk, balancing out the coconut's sweetness in the curry. Fish sauce, tamarind, and palm sugar provide a salty-sweet punch that cuts through the richness of the beef and peanut–laced curry paste, while makrut lime leaves and sweet basil (a.k.a. Thai basil) offer fresh herbal notes to this deeply satisfying curry.

This recipe is designed so that it can be made with either a scratch-made, hand-pounded panang curry paste, or a store-bought paste. There are perfectly good canned panang pastes on the market, or you can easily doctor up a red curry paste to fit the panang flavor profile with the addition of peanuts and spices (see the notes section for more info on how to do that).

Recipe Facts



Prep: 5 mins
Cook: 3 hrs 25 mins
Active: 60 mins
Cooling Time: 30 mins
Total: 4 hrs
Serves: 4 servings

Rate & Comment


For the Beef Braise:

  • 2 1/2 pounds (1.1kg) bone-in beef short ribs (see note)

  • 3 tablespoons (45ml) vegetable oil, divided

  • Kosher salt

  • 1 cup (240ml) full-fat coconut milk, such as Aroy-D (see note)

For the Roasted Shallots:

  • 6 small shallots or pearl onions (about 90g total), unpeeled

For the Curry:

  • 10 fresh or frozen makrut lime leaves, divided (see note)

  • 1 cup (240ml) full-fat coconut milk, such as Aroy-D, divided

  • 4 ounces (1/2 cup; 114g) homemade or store-bought panang curry paste (see note)

  • 3 tablespoons (75g) softened palm sugar (see note)

  • 3 tablespoons (45ml) fish sauce

  • 1 tablespoon plus 1 1/2 teaspoons (30g) tamarind paste

  • 1 cup (about 30g) packed fresh sweet basil leaves (a.k.a. Thai basil)

  • Cooked jasmine rice, for serving


  1. For the Beef Braise: If using flanken-cut ribs, divide each strip into smaller pieces by slicing between the bones; if using English-cut ribs, leave as-is. Season beef all over with salt. In a large, heavy-bottomed pot or Dutch oven, heat half of the oil over medium-high heat until lightly smoking. Add half of the beef and cook, turning occasionally, until browned on all sides, about 8 minutes; transfer browned short ribs to a plate. Add remaining oil to pot and repeat browning process with the rest of the beef.

  2. Return all beef to the pot, then add enough water to fully cover (about 2 to 3 quarts/liters) along with the coconut milk. Bring to a vigorous simmer and cook, stirring occasionally and adding more water as needed to keep beef submerged, until beef is fully tender and can be pierced easily with a paring knife, 2 1/2 to 3 hours. Remove pot from heat and set aside to cool, keeping beef submerged in cooking liquid, for at least 30 minutes. When cool, transfer beef to cutting board. Using a sharp knife, trim off and discard bones and cut beef into 1-inch pieces. Set aside, along with 1 cup (240ml) of beef cooking liquid and 2 tablespoons (30ml) rendered beef fat, which should have risen to surface of cooking liquid; remaining cooking liquid and fat can be refrigerated in an airtight container and saved for another use.

  3. Meanwhile, for the Roasted Shallots: Place unpeeled shallots in a small, dry stainless steel or cast iron skillet and cook over medium heat, turning occasionally, until fully softened and blackened all over, about 30 minutes. Alternatively, you can grill the unpeeled shallots over low heat. Transfer shallots to a cutting board, allow to cool until comfortable to handle, then peel. Set aside.

  4. For the Curry: Remove and discard the mid-rib from the makrut lime leaves; set half of the leaves aside. Stack remaining makrut lime leaves, fold in half widthwise, then slice into hair-thin strips; set aside separately.

  5. In a 3-quart saucepan, combine reserved 2 tablespoons (30ml) rendered beef fat and 1/2 cup (120ml) coconut milk and bring to a simmer over medium heat. Cook, stirring often with a rubber spatula, until thickened slightly, about 3 minutes.

  6. Add curry paste, stir vigorously to combine, and use rubber spatula to scrape the sides of the saucepan to fully incorporate the paste. Add the de-ribbed, whole lime leaves, and continue to cook, stirring and scraping constantly, until the fat begins to separate from the curry paste, about 3 minutes.

  7. Add palm sugar and stir to melt. Continue to cook, stirring constantly, until color of paste deepens to a dark brick-red, about 30 seconds. Add fish sauce, tamarind, remaining 1/2 cup (120ml) coconut milk, and reserved 1 cup (240ml) beef cooking liquid, and stir until well incorporated. Add beef and shallots, and gently stir to incorporate into curry. Lower heat to medium-low to maintain a gentle simmer and cook, stirring occasionally and being careful not to break apart the beef, until curry has slightly reduced to a saucy consistency, about 10 minutes. Remove from heat, add sweet basil, and stir until wilted and incorporated.

  8. Transfer curry to a large serving bowl or divide between individual bowls and top with remaining thinly-sliced lime leaves. Serve with cooked jasmine rice.

Special Equipment

Dutch oven, 3-quart saucepan


If possible, try to purchase flanken-cut short ribs that are 1 1/2- to 2-inches thick (flanken-cut ribs are sawed across the bone so each strip of meat has multiple rib cross-sections in it; this is different from English-cut short ribs, in which each piece has a single rib bone in it). If you can't find flanken-cut short ribs, English-cut, bone-in short ribs will still work.

When purchasing coconut milk, look for versions like this one from Aroy-D that have "100% coconut milk" as the only listed ingredient, rather than those made with coconut extract and water.

Makrut lime leaves can be found at Southeast Asian and South Asian markets. If you’re lucky you will find them fresh, but it is more common to find them frozen (note that they are often sold under a different name that we avoid using, as it is a derogatory term in some contexts).

If using store-bought curry paste, you can also use red curry paste and adjust it to make a panang paste. Pound 4 ounces (114g) red curry paste in a mortar and pestle with 1 stalk lemongrass (bottom 4 to 5 inches only, outer leaves discarded, tender core thinly sliced), 2 tablespoons roasted unsalted peanuts, 1/2 piece whole nutmeg, 2 teaspoons whole coriander seeds, 1/2 teaspoon whole cumin seeds, and 1/2 teaspoon white peppercorns.

Palm sugar can be found in Thai markets, as well as some nationwide supermarket chains like HMart, and also online. You can soften palm sugar in the following ways: microwave at full power in a microwave-safe bowl for approximately 15 seconds, chop it up with a sharp knife and then pound it in a pestle and mortar, or create a concentrated syrup by using as little water you can and dissolving it in a pan on the stovetop.

Make-Ahead and Storage

The short ribs can be braised a day in advance; refrigerate them whole in their cooking liquid. The finished short rib curry can be refrigerated in an airtight container for up to 3 days. Reheat gently on stovetop before serving. It is often assumed that curries, stews, and braises taste better the next day, but as we have covered, this is not always the case, especially with bright and acidic stews that lose their punch over time. While this flavor-muting phenomenon can be an issue for other Thai curries, this panang curry tastes just as good the next day. If you plan on making the curry a day in advance, hold off on adding the sweet basil leaves in Step 7; stir them in at the last minute when reheating the curry before serving.

Nutrition Facts (per serving)
1211 Calories
89g Fat
45g Carbs
65g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4
Amount per serving
Calories 1211
% Daily Value*
Total Fat 89g 114%
Saturated Fat 48g 238%
Cholesterol 230mg 77%
Sodium 2015mg 88%
Total Carbohydrate 45g 16%
Dietary Fiber 2g 6%
Total Sugars 25g
Protein 65g
Vitamin C 8mg 41%
Calcium 102mg 8%
Iron 12mg 67%
Potassium 1082mg 23%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)