Moo Ping (Thai-Style Grilled Pork Skewers) Recipe

These skewers will have you forget all about sad takeout satay.

Thai-style grilled pork skewers on a rectangular platter with lime wedges.

Serious Eats / Vicky Wasik

Why It Works

  • Thinly slicing pork shoulder allows the meat to pick up flavor from the punchy marinade, and speeds up cooking time.
  • Setting up a charcoal grill just for cooking skewers makes it easier to produce lightly charred pork that is juicy and tender.
  • Brushing skewers with unsweetened coconut cream while cooking keeps meat moist, and creates a sticky glaze on the surface.

If you were to conduct a poll in the United States asking people what comes to mind when they hear the words "Thai grilled skewers," I would wager over 97 percent of folks would answer, "chicken satay." People love chicken satay, and I don't have any bones to pick with their skewer choices. I would also venture a guess that the absence of bone-picking is part of what appeals to a dining public that willed the "boneless chicken wing" into marketing existence. Satay is great, but there are plenty of other Thai options in the grilled meat-on-a-stick extended universe. One of my favorites is moo ping—grilled pork skewers, a popular street food in Thailand.

Overhead closeup of Thai pork skewers grilling on a Japanese konro grill.

Serious Eats / Vicky Wasik

These skewers are made with sliced pork tossed in a savory-sweet marinade, which balances the saltiness of Thai fish sauce, soy sauce, and oyster sauce with the roasty sweetness of palm sugar. Garlic and white pepper provide plenty of bite. Traditionally, garlic is pounded to a paste in a mortar and pestle with cilantro root, but to make this dish more accessible, mince garlic cloves and substitute minced tender cilantro stems in place of the harder-to-find cilantro root. An optional, but highly recommended, pinch of MSG powder (a common ingredient used by Thai street food vendors) gives the marinade a savory boost.

Closeup of Thai pork skewers being brushed with a pastry brush while resting on a wire mesh rack, suspended over coals.

Serious Eats / Vicky Wasik

As with my al pastor skewers, I thinly slice pork butt into strips sized for skewering. After marinating a few hours, the pork pieces get threaded onto skewers, bunched tightly together to prevent the skewer from burning and breaking during cooking; the only parts of the skewers that should be exposed are a two-inch handle at the bottom, and just the very tip at the top.

Once the skewers are assembled, it's time to rig up your grill for skewer-cookery. This set up mimics the grilling rigs you would find at street-food kiosks in Thailand. The pork can be grilled directly over the coals, or on top of a wire rack balanced on the bricks.

As the pork cooks, brush skewers with unsweetened coconut cream, which forms a sticky, shiny glaze on the meat while keeping the pork moist as it grills. The skewers need to be turned and brushed continuously in order for the meat to cook evenly, and to manage flare-ups caused by dripping pork fat.

Thai pork skewers cooking directly over hot coals.

Serious Eats / Vicky Wasik

Once the meat is lightly charred and cooked through, take skewers off the grill and let them rest for a couple of minutes before you dig in. The skewers are great as-is, but you can jazz them up with a squeeze of fresh lime, or, if you're feeling industrious, a batch of dried chili-vinegar dipping sauce for dunking. Nobody will be missing sad takeout satay.

July 2019

Recipe Facts



Prep: 40 mins
Cook: 50 mins
Active: 30 mins
Marinating Time: 4 hrs
Total: 5 hrs 30 mins
Serves: 4 to 6 servings

Rate & Comment


  • 4 medium cloves garlic (20g), minced

  • 2 tablespoons (15g) minced cilantro stems, plus fresh cilantro leaves for serving

  • 2 tablespoons (30g) finely chopped palm sugar (see note)

  • 1 tablespoon (15ml) fish sauce

  • 1 tablespoon (15ml) soy sauce

  • 1 tablespoon (15ml) oyster sauce

  • 1 1/2 teaspoons (6g) ground white pepper

  • 1/2 teaspoon (2g) MSG powder (optional)

  • 2 pounds (900g) pork butt, in one piece

  • 1 (5 1/2-ounce; 160ml) can unsweetened coconut cream (see note)

  • 1 recipe Thai dried chili-vinegar dipping sauce, for serving (optional)


  1. In a small bowl, combine garlic, cilantro stems, palm sugar, fish sauce, soy sauce, oyster sauce, white pepper, and MSG (if using), and stir until palm sugar is dissolved. Set aside.

  2. Freeze pork for 15 minutes and up to 30 minutes (partially freezing the pork makes it easier to slice). Using a sharp chef's knife or slicing knife, slice pork against the grain into 2-inch-long, 1-inch-wide, and 1/8-inch-thick strips. The easiest and most efficient way to do this is to start by portioning the pork butt into 2-inch-wide by 1-inch-thick pieces, and then slicing those pieces crosswise into 1/8-inch-thick strips.

  3. Combine pork and marinade in a large bowl, and toss until every piece of meat is evenly coated in marinade. Cover tightly with plastic wrap and refrigerate for at least 4 hours, and up to 36 hours.

  4. Thread one piece of pork onto a skewer, piercing it through twice to secure it, then pushing meat tightly together like an accordion. Continue threading pork onto skewer, making sure meat is tightly bunched together, leaving no parts of the skewer exposed except for a 2-inch handle at the bottom, and the pointy tip at the top. Repeat skewering process with remaining pork.

  5. Set up grill for skewers, making sure to adjust distance between bricks to the length of your skewers. Light one chimney full of charcoal. When all the charcoal is lit and covered with gray ash, pour out and spread the coals evenly in the channel between the bricks.

  6. Place skewers directly over hot coals, balancing on top of bricks, with handles overhanging the bricks closest to you and the tips balancing on the farther wall of bricks. Using a brush, brush pork with coconut cream. Cook, turning skewers and brushing pork with coconut cream frequently, until meat is lightly charred, and a piece of pork looks cooked through when removed and cut in half, 8 to 10 minutes; if flare-ups occur, move skewers around as needed to get them away from the flames. Transfer to serving platter and let rest for 1 to 2 minutes. Serve immediately, passing lime wedges, as well as cilantro and dipping sauce (if using), at the table.

    Four partially cooked pork Thai skewers on a brick stand over coals.

    Serious Eats / Vicky Wasik

    Several Thai pork skewers cooking over charcoal, suspended between two parallel rows of foil-wrapped bricks.

    Serious Eats / Vicky Wasik

Special Equipment

Grill, chimney starter, bricks, bamboo skewers


Palm sugar, sometimes labeled as "coconut sugar," can be found at Thai markets, or online. For this recipe, an equal amount of packed light brown sugar can be substituted for palm sugar if you have trouble sourcing it.

Coconut cream is a richer, thicker, more concentrated version of coconut milk. Find it in cans in the same aisle as canned coconut milk. It is not the same as cream of coconut, which has added sugar.

Make-Ahead and Storage

The grilled skewers are best enjoyed immediately. The marinade can be made in advance, and refrigerated for up to 3 days. The pork can be marinated for up to 36 hours.

Read More

Nutrition Facts (per serving)
555 Calories
34g Fat
25g Carbs
36g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 555
% Daily Value*
Total Fat 34g 43%
Saturated Fat 16g 78%
Cholesterol 129mg 43%
Sodium 579mg 25%
Total Carbohydrate 25g 9%
Dietary Fiber 0g 1%
Total Sugars 23g
Protein 36g
Vitamin C 3mg 15%
Calcium 56mg 4%
Iron 2mg 14%
Potassium 582mg 12%
*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.)