Quick Recipe Version (TL;DR)
Quick Ingredients
- Corn husks: 24 dried corn husks, plus hot water for soaking
- Masa: 3 cups masa harina for tamales, 2 teaspoons baking powder, 1 1/2 teaspoons fine sea salt, 3/4 cup softened lard or vegetable shortening, 2 1/4 cups warm chicken or vegetable broth at 105°F to 115°F
- Filling: 8 ounces fresh Mexican chorizo or breakfast sausage, or 1 1/2 cups diced mushrooms or zucchini plus 1 cup drained black beans; 1/2 cup diced white onion; 1 cup diced poblano; 1/2 cup diced red bell pepper; 6 large eggs; 2 tablespoons crema or milk; 1 cup shredded Oaxaca, Chihuahua, or Monterey Jack cheese; 1/4 cup chopped cilantro
- Salsa roja: 1 pound Roma tomatoes, 1 jalapeño or serrano chile, 1/4 white onion, 2 garlic cloves, 1 tablespoon lime juice, 2 tablespoons cilantro, 1/2 teaspoon fine sea salt
- To serve: 1/2 cup Mexican crema, extra salsa, chopped cilantro, lime wedges, and crumbled queso fresco if desired
Do This
- 1. Soak 24 dried corn husks in hot water for 30 minutes, then pat dry.
- 2. Broil tomatoes, chile, onion, and garlic at 500°F for 8 to 10 minutes; blend with lime juice, cilantro, and salt for salsa.
- 3. Cook chorizo or vegetables, then scramble eggs with crema until softly set; fold in cheese and cilantro.
- 4. Beat lard or shortening until fluffy; mix in masa harina, baking powder, salt, and warm broth until soft and spreadable.
- 5. Spread about 1/4 cup masa on each husk, add 2 tablespoons filling, fold, and repeat to make 16 tamales.
- 6. Steam tamales upright for 60 minutes, adding boiling water as needed, until the masa pulls away from the husk and the center reaches 165°F.
- 7. Rest 10 minutes, then serve warm with salsa roja, crema, cilantro, and lime.
Why You’ll Love This Recipe
- Hearty and comforting: Soft corn masa wraps around a savory breakfast filling of eggs, cheese, sausage, and vegetables.
- Great for weekends or brunch: The tamales feel special, but every step is manageable for a home kitchen.
- Flexible filling options: Make them with chorizo, breakfast sausage, sautéed vegetables, or black beans.
- Make-ahead friendly: Steam a batch once, then reheat tamales for easy breakfasts all week.
Grocery List
- Produce: Dried corn husks, Roma tomatoes, jalapeño or serrano chile, white onion, garlic, poblano pepper, red bell pepper, cilantro, limes, optional mushrooms, zucchini, avocado, and extra herbs for serving
- Dairy: Mexican crema, Oaxaca cheese, Chihuahua cheese, Monterey Jack cheese, or queso fresco
- Meat and Eggs: Large eggs and fresh Mexican chorizo or breakfast sausage
- Pantry: Masa harina for tamales, baking powder, fine sea salt, black pepper, ground cumin, low-sodium chicken broth or vegetable broth, lard or vegetable shortening, neutral oil, and optional black beans
Full Ingredients
For the Corn Husks
- 24 dried corn husks, preferably large and flexible
- Hot water, enough to fully cover the husks
For the Soft Corn Masa
- 3 cups masa harina for tamales, about 330 grams
- 2 teaspoons baking powder
- 1 1/2 teaspoons fine sea salt
- 1/2 teaspoon ground cumin
- 3/4 cup lard, vegetable shortening, or softened unsalted butter, at room temperature
- 2 1/4 cups warm low-sodium chicken broth or vegetable broth, heated to 105°F to 115°F
- 2 to 4 tablespoons additional warm broth, only if needed for texture
For the Breakfast Filling
- 8 ounces fresh Mexican chorizo or breakfast sausage, casings removed
- For a vegetarian version instead of sausage: 1 1/2 cups finely diced mushrooms or zucchini plus 1 cup drained and rinsed black beans
- 1 tablespoon neutral oil, only if the pan looks dry or if making the vegetarian version
- 1/2 cup finely diced white onion
- 1 cup finely diced poblano pepper, seeds removed
- 1/2 cup finely diced red bell pepper
- 1 small jalapeño, seeded and minced, optional
- 6 large eggs
- 2 tablespoons Mexican crema, whole milk, or half-and-half
- 1/2 teaspoon fine sea salt
- 1/4 teaspoon freshly ground black pepper
- 1 cup shredded Oaxaca, Chihuahua, or Monterey Jack cheese, about 4 ounces
- 1/4 cup chopped fresh cilantro
For the Roasted Tomato Salsa Roja
- 1 pound Roma tomatoes, about 4 to 5 medium tomatoes, halved lengthwise
- 1 jalapeño or serrano chile, stem removed
- 1/4 medium white onion, about 2 ounces
- 2 garlic cloves, unpeeled
- 1 tablespoon neutral oil
- 1/2 teaspoon fine sea salt, plus more to taste
- 1 tablespoon fresh lime juice
- 2 tablespoons chopped fresh cilantro
- 2 to 4 tablespoons water, as needed to loosen the salsa
For Serving
- 1/2 cup Mexican crema
- 1/4 cup crumbled queso fresco, optional
- 2 tablespoons chopped fresh cilantro
- 1 lime, cut into wedges
- Extra salsa roja, warmed or at room temperature

Step-by-Step Instructions
Step 1: Soak and prepare the corn husks
Place the dried corn husks in a large bowl, baking dish, or clean sink. Cover them completely with hot water and weigh them down with a plate so they stay submerged. Soak for 30 minutes, or until the husks are pliable and easy to fold without cracking.
Drain the husks and pat them dry with a clean kitchen towel. Choose the 16 largest, smoothest husks for wrapping the tamales. Keep the remaining husks for lining the steamer and for tearing into thin strips if you want to tie the tamales closed.
Step 2: Make the roasted tomato salsa roja
Preheat the broiler to 500°F and place an oven rack about 6 inches from the heat source. Arrange the tomato halves, jalapeño or serrano, onion, and unpeeled garlic on a rimmed baking sheet. Drizzle with 1 tablespoon neutral oil and broil for 8 to 10 minutes, turning the chile once, until the tomatoes are blistered and lightly charred at the edges.
Let the roasted vegetables cool for 5 minutes. Peel the garlic, then add the tomatoes, chile, onion, garlic, 1/2 teaspoon fine sea salt, 1 tablespoon lime juice, and 2 tablespoons cilantro to a blender. Blend until mostly smooth, adding 2 to 4 tablespoons water if you prefer a looser salsa. Taste and adjust with more salt or lime juice. Set aside for serving.
Step 3: Cook the savory breakfast filling
Heat a large skillet over medium heat. Add the chorizo or breakfast sausage and cook for 6 to 8 minutes, breaking it into small crumbles with a spoon, until browned and cooked through to 160°F. If there is more than 1 tablespoon of fat in the pan, carefully spoon off the excess. Transfer the sausage to a bowl.
For the vegetarian version, heat 1 tablespoon neutral oil in the skillet over medium heat. Add the mushrooms or zucchini and cook for 6 to 8 minutes, stirring often, until the vegetables are tender and most of their moisture has evaporated. Stir in the black beans during the final 2 minutes to warm them through, then transfer to a bowl.
In the same skillet, add the diced onion, poblano, red bell pepper, and optional jalapeño. Cook over medium heat for 4 to 5 minutes, stirring often, until softened. In a separate bowl, whisk together the eggs, 2 tablespoons crema or milk, 1/2 teaspoon fine sea salt, and 1/4 teaspoon black pepper.
Reduce the skillet heat to medium-low. Pour in the egg mixture and gently stir for 2 to 3 minutes, just until the eggs form soft, glossy curds. They should be slightly underdone because they will finish cooking inside the tamales. Fold the sausage or vegetarian mixture back into the eggs, then remove from the heat. Stir in the shredded cheese and chopped cilantro. Let the filling cool for 10 minutes before assembling.
Step 4: Mix the masa until light and spreadable
In a medium bowl, whisk together the masa harina, baking powder, fine sea salt, and ground cumin. In a large mixing bowl, beat the lard, vegetable shortening, or softened butter with a hand mixer on medium-high speed for 3 minutes, until fluffy and lighter in color.
Add about one-third of the masa harina mixture to the whipped fat and beat on low speed until combined. Add about one-third of the warm broth and mix again. Continue alternating the dry mixture and broth until everything is incorporated. Beat for 3 to 4 minutes more, scraping down the sides of the bowl, until the masa is soft, airy, and spreadable, similar to thick hummus or very soft peanut butter.
To test the texture, spread a spoonful of masa on a damp corn husk. It should smooth out easily without tearing the husk. If it feels stiff or crumbly, beat in additional warm broth 1 tablespoon at a time, up to 4 tablespoons total. Cover the bowl and let the masa rest for 10 minutes.
Step 5: Fill and fold the tamales
Place one soaked corn husk on your work surface with the smooth side facing up and the wide end closest to you. Spoon about 1/4 cup masa onto the center of the husk. Use the back of a spoon or an offset spatula to spread it into a rectangle about 4 inches wide by 5 inches long, leaving at least 1 inch of empty husk along the narrow top and sides.
Spoon about 2 tablespoons of the breakfast filling down the center of the masa. Fold one long side of the husk over the filling, then fold the other long side over so the masa meets and encloses the filling. Fold the narrow bottom end up toward the center, leaving the top end open. If needed, tie the tamale with a thin strip of soaked corn husk. Repeat until you have 16 tamales.
Step 6: Steam the tamales until tender
Set up a large steamer pot with 2 to 3 inches of water in the bottom, making sure the water level sits below the steamer basket. Line the basket with a few extra soaked corn husks to help protect the tamales from direct heat. Arrange the tamales upright with the folded ends down and the open ends facing up. They should be snug enough to stand but not packed so tightly that steam cannot circulate.
Cover the tops of the tamales with a few more corn husks, then place the lid on the pot. Bring the water to a boil over high heat, then reduce to medium-low to maintain a steady simmer. Steam for 60 minutes. Check the water level every 20 minutes and add boiling water as needed so the pot does not run dry.
After 60 minutes, carefully remove one tamale and let it cool for 2 minutes. Open the husk; the masa should pull away cleanly and feel set rather than sticky. The center of the filling should register 165°F on an instant-read thermometer. If needed, steam for 10 more minutes and test again.
Step 7: Rest, unwrap, and serve
Turn off the heat and let the tamales rest in the covered steamer for 10 minutes. This helps the masa firm up and makes the tamales easier to unwrap. Warm the salsa roja gently in a small saucepan over low heat for 3 to 5 minutes if you prefer it warm.
Serve 2 tamales per person. Open the husks, spoon salsa roja over the masa, drizzle with Mexican crema, and finish with chopped cilantro, lime wedges, and optional crumbled queso fresco. Serve immediately while the tamales are warm and soft.
Pro Tips
- Keep the filling moist but not wet: Very juicy filling can make tamales hard to fold. If your sausage or vegetables release a lot of liquid, cook until most moisture evaporates before adding eggs.
- Do not overcook the eggs in the skillet: Pull them off the heat when they are softly set and glossy. They will cook more during steaming, which keeps the final filling tender instead of dry.
- Use warm broth for softer masa: Broth heated to 105°F to 115°F blends more easily into the masa and helps create a smooth, fluffy texture.
- Pack tamales upright but not too tightly: Steam needs room to move around each tamale. If the pot is overcrowded, the masa may cook unevenly.
- Let them rest before serving: Tamales are delicate right after steaming. A 10-minute rest gives the masa time to set and pull away cleanly from the husk.
Variations
- Vegetarian breakfast tamales: Replace the 8 ounces sausage with 1 1/2 cups finely diced mushrooms or zucchini plus 1 cup black beans. Add 1/2 teaspoon smoked paprika and 1/4 teaspoon ground cumin to the vegetables for extra savory flavor.
- Salsa verde version: Replace the salsa roja with a tomatillo salsa made from 1 pound husked tomatillos, 1 serrano, 1/4 white onion, 2 garlic cloves, 1 tablespoon lime juice, 2 tablespoons cilantro, and 1/2 teaspoon salt. Broil and blend the same way.
- Bacon, egg, and potato tamales: Replace the sausage with 6 slices cooked chopped bacon and add 1 cup finely diced cooked potatoes to the filling. Keep the same egg, cheese, and vegetable amounts.
Storage & Make-Ahead
Store cooked tamales in their husks in an airtight container in the refrigerator for up to 4 days. Reheat refrigerated tamales in a steamer over simmering water for 12 to 15 minutes, or microwave one tamale at a time wrapped in a damp paper towel for 1 to 2 minutes. For food safety, reheat until the center reaches 165°F.
To freeze, cool the steamed tamales completely, keep them wrapped in their husks, and place them in a freezer-safe bag or container. Freeze for up to 3 months. Reheat frozen tamales directly from the freezer in a steamer for 20 to 25 minutes, or until hot in the center.
For a make-ahead breakfast, prepare the salsa and filling up to 2 days in advance and refrigerate separately. The masa is best mixed the day you assemble, but fully assembled unsteamed tamales can be refrigerated for up to 12 hours. Steam them straight from the refrigerator, adding about 10 minutes to the steaming time.
Nutrition (per serving)
Approximate nutrition per serving, based on 2 tamales with salsa roja and 1 tablespoon crema: 520 calories, 21 grams protein, 51 grams carbohydrates, 27 grams fat, 10 grams saturated fat, 6 grams fiber, 5 grams sugar, and 880 milligrams sodium. Nutrition will vary depending on the sausage, cheese, crema, broth, and fat used in the masa.
