Quick Recipe Version (TL;DR)
Quick Ingredients
- 3 lb boneless pork shoulder
- 1 large onion, 9 garlic cloves, 2 bay leaves, 1 tbsp kosher salt
- 10 dried guajillo + 4 dried ancho chiles, 1 small onion, 4 garlic, 1 tsp cumin, 1 tsp Mexican oregano, 1 tbsp apple cider vinegar
- 4 cups masa harina, 1 1/4 cups lard, 2 tsp baking powder, 2 tsp kosher salt, 3–3 1/2 cups warm broth
- 30–35 dried corn husks
- (Optional) Tomatillo salsa: 1 lb tomatillos, 2 jalapeños, 1/2 onion, 2 garlic, 1/2 cup cilantro, 1 tbsp lime juice
Do This
- 1. Simmer pork with onion, garlic, bay, and salt in 8 cups water until fork-tender, 2–2 1/4 hours; shred and reserve broth.
- 2. Toast and soak chiles; blend with onion, garlic, cumin, oregano, vinegar, and 1 1/2 cups broth. Simmer; reserve 3/4 cup for serving. Mix remainder with pork.
- 3. Soak corn husks in hot water 30–45 minutes.
- 4. Whip lard 3–5 minutes; beat in masa harina, baking powder, salt; stream in warm broth until fluffy and spreadable.
- 5. Spread 1/4 cup masa on husk; add 2 tbsp pork; fold sides over, then fold the narrow end up.
- 6. Stand tamales upright in steamer over gently simmering water; steam 75–90 minutes until masa pulls cleanly from husk.
- 7. Rest 15 minutes; serve with warm reserved red sauce or tomatillo salsa.
Why You’ll Love This Recipe
- Classic holiday tamales with deeply flavored, chile-laced pork and light, fluffy masa.
- Two sauce options: a smoky red chile sauce and a bright tomatillo salsa verde.
- Step-by-step guidance for confident assembly and perfectly steamed results.
- Freezer-friendly for make-ahead gifting or stress-free entertaining.
Grocery List
- Produce: White onions, garlic, tomatillos, jalapeños (or serranos), cilantro, limes
- Dairy: Lard (or vegetable shortening)
- Pantry: Boneless pork shoulder, dried corn husks, masa harina (for tamales), dried guajillo chiles, dried ancho chiles, cumin seeds or ground cumin, dried Mexican oregano, bay leaves, apple cider vinegar, kosher salt, black peppercorns, neutral oil, low-sodium chicken broth (if needed)
Full Ingredients
Pork and Broth
- 3 lb boneless pork shoulder, cut into 3-inch chunks
- 1 large white onion, quartered
- 5 garlic cloves, smashed
- 2 bay leaves
- 1 tsp whole black peppercorns (optional)
- 1 tbsp kosher salt
- 8 cups water
Red Chile Sauce + Pork Filling
- 10 dried guajillo chiles, stemmed and seeded
- 4 dried ancho chiles, stemmed and seeded
- 1 small white onion, roughly chopped
- 4 garlic cloves
- 1 tsp cumin seeds (or 3/4 tsp ground cumin)
- 1 tsp dried Mexican oregano
- 1 tbsp apple cider vinegar
- 1 1/2 to 2 cups reserved pork broth, divided
- 1 tsp kosher salt, plus more to taste
- 1 tbsp neutral oil or lard (for frying the sauce)
- Note: Reserve 3/4 cup of finished red sauce for serving.
Masa Dough
- 4 cups masa harina (for tamales)
- 1 1/4 cups lard, room temperature (or vegetable shortening)
- 2 tsp baking powder
- 2 tsp kosher salt
- 3 to 3 1/2 cups very warm reserved pork broth or low-sodium chicken broth (120–130°F)
Assembly
- 30 to 35 dried corn husks (plus a few extra torn husks for lining and ties)
Optional Tomatillo Salsa Verde
- 1 lb tomatillos, husked and rinsed
- 2 jalapeños (seeded for mild), or 1 serrano
- 1/2 medium white onion, sliced
- 2 garlic cloves
- 1/2 cup cilantro leaves and tender stems
- 1 tbsp fresh lime juice
- 1/2 tsp kosher salt, more to taste
- Up to 1/2 cup water, as needed to thin

Step-by-Step Instructions
Step 1: Simmer the pork and make broth
In a large pot, combine pork, onion, garlic, bay leaves, peppercorns (if using), kosher salt, and 8 cups water. Bring to a boil over high heat, then immediately reduce to a gentle simmer (about 190–200°F). Skim foam, partially cover, and cook until the pork is fork-tender, 2 to 2 1/4 hours. Transfer pork to a bowl to cool slightly, then shred into bite-size strands. Strain the cooking liquid; discard solids. You will need 4–5 cups broth for the sauce and masa. Keep the broth warm.
Step 2: Make the red chile sauce and finish the filling
Heat a dry skillet over medium. Toast guajillo and ancho chiles in batches, pressing lightly, 30–45 seconds per side until fragrant and pliable (do not char). Place in a heatproof bowl and cover with very hot water or hot broth (about 190°F). Soak 20 minutes until softened. In a blender, combine drained chiles, onion, garlic, cumin, oregano, vinegar, 1 1/2 cups reserved pork broth, and 1 tsp kosher salt. Blend 60–90 seconds until very smooth. Strain through a fine-mesh sieve for a silky sauce.
Reserve 3/4 cup of this sauce for serving. Heat 1 tbsp oil in a saucepan over medium. Carefully pour in the remaining sauce (it may sputter); simmer 5 minutes. Stir in the shredded pork, adding up to 1/2 cup broth if needed to coat. Simmer 10 minutes, season to taste, and keep warm over low heat.
Step 3: Make the tomatillo salsa verde (optional)
For a roasty flavor, position an oven rack 6 inches from the broiler and heat to 500°F. On a foil-lined sheet, broil tomatillos, jalapeños, and onion for 5–7 minutes until blistered; flip and broil 3–5 minutes more. Add garlic for the final 2 minutes to soften. Cool slightly, then blend with cilantro, lime juice, and salt. Thin with water to a spoonable consistency. Keep warm over low heat or serve at room temperature.
Step 4: Soak and prep the husks
Place dried corn husks in a sink or large bowl and cover with very hot water. Weigh down with a plate so they remain submerged. Soak 30–45 minutes until pliable. Drain and pat dry. Keep husks covered with a damp towel. Reserve a few torn husks for lining the steamer and for ties, if you plan to tie the tamales.
Step 5: Whip the lard and mix the masa
In a stand mixer fitted with the paddle (or using a hand mixer), beat the lard on medium-high until pale and fluffy, 3–5 minutes. In a separate bowl, whisk masa harina, baking powder, and salt. With the mixer on low, add the dry mixture in 3 additions, alternating with very warm broth. Once combined, increase to medium and beat 3–4 minutes until light and airy. The dough should be soft, spreadable, and slightly sticky—like thick hummus. Drop a small pinch into cold water; if it floats, it is ready. If it sinks, beat 1–2 minutes more, adding 1–2 tablespoons lard or warm broth as needed.
Step 6: Set up the steamer
Add 1 1/2 to 2 inches of water to a large steamer pot (water line should sit below the insert). Line the insert with a few husks to prevent sticking. Bring to a steady simmer over medium heat (about 200°F). Keep a kettle of hot water nearby to top up during steaming.
Step 7: Fill and fold the tamales
Working one husk at a time (smooth side up, narrow end toward you), spread about 1/4 cup masa into a 4-by-5-inch rectangle, leaving a 1/2-inch border on the sides and 1 1/2-inch border at the narrow end. Add about 2 tablespoons pork filling down the center. Optionally spoon 1 teaspoon reserved red sauce over the meat. Fold the right side of the husk over the filling, then the left side to overlap. Fold the narrow end up. Tie with a strip of husk if desired. Repeat with remaining husks, masa, and filling.
Step 8: Steam until tender, then serve
Stand tamales upright (open ends up) in the steamer. Cover with leftover husks and the lid. Steam at a gentle but constant simmer for 75–90 minutes, checking water every 20–30 minutes and adding hot water as needed. Begin checking at 70 minutes: the tamales are done when the masa pulls cleanly from the husk and feels set yet moist; internal temp will be around 185–195°F. Remove from the steamer and rest 15 minutes; the masa will finish hydrating and firm up. Serve warm with the reserved red sauce or tomatillo salsa.
Pro Tips
- Light, fluffy masa comes from air: whip the lard well and beat the dough for several minutes. The float test is your friend.
- Keep masa covered with a damp towel while assembling to prevent drying. If it thickens, mix in 1–2 tablespoons warm broth.
- Use the smooth side of the husk for spreading; a small offset spatula or the back of a spoon makes quick work.
- Maintain a gentle simmer in the steamer—vigorous boiling can make tamales waterlogged.
- Instant Pot option: Arrange tamales upright on a trivet with 1 cup water. Cook on High Pressure 45–50 minutes; natural release 15 minutes.
Variations
- Green chicken tamales: Swap pork for 3 cups shredded chicken; use the tomatillo salsa as the filling sauce.
- Cheese and jalapeño: Fill with strips of Oaxaca or Monterey Jack and roasted jalapeño; serve with red sauce.
- Shortening or oil: For a dairy-free option, use vegetable shortening or refined coconut oil in place of lard (flavor will be slightly different).
Storage & Make-Ahead
Refrigerate cooked tamales (in husks) up to 4 days or freeze up to 3 months. Reheat by steaming 12–15 minutes from refrigerated or 20–25 minutes from frozen; or microwave wrapped in a damp paper towel 2–3 minutes. You can also assemble uncooked tamales and freeze on a tray until solid, then bag. Steam from frozen 90–100 minutes. The pork filling and sauces can be made 2 days ahead; the masa is best made fresh the day you assemble.
Nutrition (per serving)
Approximate for 2 tamales with sauce: 620 calories; 34 g fat; 48 g carbohydrates; 28 g protein; 880 mg sodium; 6 g fiber.
