Pupusas are a traditional Salvadoran griddle cake made with thick corn masa and filled with beans, cheese, or meat, then cooked until golden.

Jump to
It is commonly served with curtido and a mild tomato salsa and enjoyed as a popular street food or comfort meal.
This Pupusa de Frijoles y Queso recipe is my home-style version made with homemade pupusa masa seasoned with Knorr chicken bouillon instead of salt for better flavor.
I use canned beans with Monterey Jack cheese and bacon to keep the filling easy and flavorful.
Ingredients You'll Need
See recipe card for quantities.
- Masa Harina: The base of the Pupusa dough, giving pupusas their signature corn flavor and soft texture. ( I used Maseca).
- Knorr chicken bouillon or kosher salt: Typically, pupusas are seasoned with salt, but I like using Knorr granulated chicken bouillon to add extra depth and savory flavor to the dough.
- Butter (or Oil): Adds richness and keeps the dough moist and pliable.
- Monterey Jack Cheese: Melts well, creating a gooey, flavorful filling. It can be substituted with mozzarella cheese or queso para pupusa.If using a block, cut up the cheese and process until the mixture resembles wet oatmeal, about 30 seconds (it will not form a cohesive mass).
- Bacon: Adds a smoky, savory depth to the bean filling, making it perfect for delicious pupusas revueltas.This can be substituted with 1 to 2 tablespoons of oil if preferred.
- Canned beans: Provide a creamy, hearty filling. I like using kidney or pinto beans, but black beans work just as well if preferred.
- Onion and garlic: Build a flavorful base for the bean filling; omit if desired.
- Monterey Jack or mozzarella cheese: Melts smoothly and evenly, creating the signature gooey center.
How to Make Pupusas
Note: Full instructions are provided in the recipe card below.
- In a small bowl, mix 2 tablespoons of oil with 1 cup of water. Set aside to prevent the dough from sticking and to keep it hydrated.
- In a large bowl, combine the masa harina and chicken bouillon (or salt). Add the warm water and melted butter (or oil) and mix until a soft, playdough-like dough forms that releases from the bowl and does not stick to your hands.
- If the dough is too dry, add warm water 1 tablespoon at a time. If too sticky, add masa harina 1 tablespoon at a time. Cover with plastic wrap or a damp towel and let rest for 15-20 minutes. Line a rimmed baking sheet with parchment paper.
- Heat the bacon in a 10-inch nonstick skillet over medium-low heat until the fat renders and the bacon is crisp, 7-10 minutes, flipping halfway through. Remove bacon and reserve.
- Increase the heat to medium, add the onion to the bacon fat, and cook until lightly browned, 5-7 minutes. Add the garlic and cook until fragrant, about 30 seconds.
- Add the rinsed beans, chicken bouillon, and water. Bring to a simmer and cook, mashing with a potato masher, until mostly smooth, about 5-7 minutes. Crumble the reserved bacon and stir into the beans.
- Remove from heat and let cool completely. Once cooled, add the Monterey Jack cheese and mix well. Divide the filling into 19 balls (about 43 g / 1.5 oz each), place on the prepared baking sheet, and cover with plastic wrap.
- Knead the dough briefly, about 15-20 seconds. Flatten a small piece to test hydration; if cracks larger than ¼ inch appear, add warm water 1 tablespoon at a time until soft.
- Shape the dough into a large ball and divide into 19 equal pieces (about 83 g / 3 oz each). Moisten your hands with the oil mixture, roll each piece into a ball, and place on the baking sheet. Cover with plastic wrap or a damp towel.
- Rub your hands lightly with the oil mixture. Create a well in a dough ball, place one filling ball inside, and enclose the filling with the dough.
- Gently press between your palms to form a uniform ¼-inch-thick disk. Use more oil mixture as needed to prevent sticking.
- Alternatively, place a dough ball inside a cut zipper-lock bag, flatten to a 4-inch circle, add the filling, seal, and flatten again to 4 inches.
- Heat 1 teaspoon of oil in a nonstick skillet over medium-high heat and wipe out excess oil. Cook 4 pupusas at a time until golden, about 4 minutes per side. Repeat with the remaining pupusas. Serve warm with salsa and curtido.
- Place the tomatoes, onion, serrano pepper, and 2 whole garlic cloves on a baking sheet. Drizzle with oil, season with salt and pepper, and broil until charred in spots, about 10 minutes. Cool for 5 minutes, then peel the garlic.
- Transfer the roasted vegetables to a blender and blend until smooth, working in batches if needed.
- Alternatively, bring a pot of water to a boil. Add the serrano peppers and cook for 5 minutes. Add the tomatoes, 1 garlic clove, and onion, and cook until the tomato skins split, about 1-2 minutes. Cool slightly.
- Blend the serranos, onion, cooked garlic, 1 raw garlic clove, and 2 cups of water (or the tomato cooking water, if using the boiling method) until smooth. Add the tomatoes and pulse for a slightly textured salsa.
- Heat 2 tablespoons of oil in a saucepan over medium heat. Add 1 garlic clove and cook until lightly golden, then discard. Add the blended salsa, oregano, black pepper, and salt.
- Bring to a boil, reduce the heat, and simmer for 15-20 minutes, stirring occasionally. Adjust seasoning to taste.











Camila's Tips & Variations
- Prevent Sticking: Moisten your hands with the oil and water mixture to prevent the masa from sticking.
- Smooth Out Cracks: Use a damp fingertip to smooth out any cracks in the dough.
- Check Dough Hydration: Flatten a small piece of dough; if it cracks, add a little water.
- Cheese Substitution: Swap Monterey Jack cheese with mozzarella.
- Simplify the Bean Filling: Skip the bacon, onion, and garlic. Heat 1 tablespoon of oil, add rinsed beans and water, and follow the rest of the recipe. Alternatively, mash the beans into a chunky paste with a potato masher or fork.
- Filling Variations: Add cooked chorizo, shredded chicken, or sautéed spinach to the filling.
- Alternative to Shaping Pupusas: Draw a 4-inch circle on one side of a 1-quart or 1-gallon zipper-lock bag. Cut along both side seams, leaving the bottom seam intact to open like a book. Place a dough ball in the marked circle inside the bag, fold the bag over, and flatten the dough to 4 inches using a dish or plate. Add the filling in the center, bring the edges of the dough around the filling to seal, and flatten it again into a 4-inch disk. Keep the dough covered while you work to prevent drying out.
- Streamline the pupusa sauce: bring the 10 Roma tomatoes to a boil in a pot with enough water to just cover them. Once boiling, cook until their skins wrinkle and split, about 1-2 minutes (be careful not to overcook, as they may become too soft). Remove the tomatoes from the pot, reserving the cooking water, and transfer them to a blender. Add chicken bouillon (or salt) and oregano to taste, and blend until smooth, leaving the lid vented for heat to escape. Return the blended mixture to the pot, stir in 1 cup of the reserved cooking water, and bring to a boil. Reduce the heat and simmer for about 10 minutes. Adjust seasoning to taste.
Hint: Keep the masa slightly tacky for easy shaping. If it dries out, add warm water gradually. A little cheese leaking during cooking is normal and adds flavor.
Storage, Make Ahead, & Freezing
Storage: Store cooked pupusas in an airtight container in the refrigerator for up to 3 days. Reheat in a skillet over medium heat until warmed through, or briefly in the microwave.
Make ahead: Prepare the dough and filling up to 24 hours in advance. Store separately in the refrigerator. Bring to room temperature before assembling.
Freezing: Freeze uncooked pupusas in a single layer on a parchment-lined baking sheet until solid. Then, wrap pupusas individually in plastic and transfer them to a zipper-lock bag. Freeze for up to 1 month. Cook directly from frozen, increasing cooking time by 1 minute per side.
Frequently Asked Questions
What are pupusas made of?
Pupusas are made with masa harina dough, filled with ingredients like beans, cheese, or meat, and cooked on a griddle until golden.
Why is my masa dough cracking when I flatten it?
The dough is likely too dry. Add water, one tablespoon at a time, kneading gently until the dough becomes pliable and smooth.
How can I prevent the filling from leaking out?
Avoid overstuffing the pupusas, and be sure to fully enclose the filling with the masa before flattening.

You may also like
Recipe
Easy Pupusas

Ingredients
For the Masa:
- 681 g Masa Harina (Maseca)
- 3 teaspoons Knorr Chicken Flavor bouillon or kosher salt
- 3 tablespoon butter , melted or vegetable oil
- 4¼ cups hot water , adjust as needed (see Note)
For the Oil Mixture:
- 1 cup water
- 2 tablespoons oil
For filling:
- 1 (15 oz) can kidney beans or pinto beans, rinsed and drained
- 2 slices bacon, optional If you're not using bacon, substitute it with 2 tablespoons of oil and heat it in a pan before continuing with the recipe.
- 1 small onion, optional , chopped fine
- 2 garlic cloves, optional , minced
- ¼ cup water
- 16 oz ( 4 cups) Monterey jack cheese or mozzarella , shredded
For the Pupusa Sauce:
- 10 Roma tomatoes , ripe without stem
- 3 garlic cloves
- 1 small yellow or white onion , cut in half
- 1 fresh serrano pepper , Adjust to your spice preference-add more for extra heat or less for mild flavor.
- 2 tablespoons oil
- 3 teaspoons kosher , adjust to taste
- ½ teaspoon ground black pepper , to taste
- 2 teaspoons dried oregano, optional
- 2 cups water , as needed to completely cover the tomatoes
Instructions
- In a small bowl, mix 2 tablespoons of oil with 1 cup of water. Set aside to prevent the dough from sticking and to keep it hydrated.
- In a large bowl, combine the masa harina and chicken bouillon (or salt). Add the warm water and melted butter (or oil) and mix until a soft, playdough-like dough forms that releases from the bowl and does not stick to your hands.
- If the dough is too dry, add warm water 1 tablespoon at a time. If too sticky, add masa harina 1 tablespoon at a time. Cover with plastic wrap or a damp towel and let rest for 15-20 minutes. Line a rimmed baking sheet with parchment paper.
- Heat the bacon in a 10-inch nonstick skillet over medium-low heat until the fat renders and the bacon is crisp, 7-10 minutes, flipping halfway through. Remove bacon and reserve.
- Increase the heat to medium, add the onion to the bacon fat, and cook until lightly browned, 5-7 minutes. Add the garlic and cook until fragrant, about 30 seconds.
- Add the rinsed beans, chicken bouillon, and water. Bring to a simmer and cook, mashing with a potato masher, until mostly smooth, about 5-7 minutes. Crumble the reserved bacon and stir into the beans.
- Remove from heat and let cool completely. Once cooled, add the Monterey Jack cheese and mix well. Divide the filling into 19 balls (about 43 g / 1.5 oz each), place on the prepared baking sheet, and cover with plastic wrap.
- Knead the dough briefly, about 15-20 seconds. Flatten a small piece to test hydration; if cracks larger than ¼ inch appear, add warm water 1 tablespoon at a time until soft.
- Shape the dough into a large ball and divide into 19 equal pieces (about 83 g / 3 oz each). Moisten your hands with the oil mixture, roll each piece into a ball, and place on the baking sheet. Cover with plastic wrap or a damp towel.
- Rub your hands lightly with the oil mixture. Create a well in a dough ball, place one filling ball inside, and enclose the filling with the dough.
- Gently press between your palms to form a uniform ¼-inch-thick disk. Use more oil mixture as needed to prevent sticking.
- Alternatively, place a dough ball inside a cut zipper-lock bag, flatten to a 4-inch circle, add the filling, seal, and flatten again to 4 inches.
- Heat 1 teaspoon of oil in a nonstick skillet over medium-high heat and wipe out excess oil. Cook 4 pupusas at a time until golden, about 4 minutes per side. Repeat with the remaining pupusas. Serve warm with salsa and curtido.
- Place the tomatoes, onion, serrano pepper, and 2 whole garlic cloves on a baking sheet. Drizzle with oil, season with salt and pepper, and broil until charred in spots, about 10 minutes. Cool for 5 minutes, then peel the garlic.
- Transfer the roasted vegetables to a blender and blend until smooth, working in batches if needed.
- Alternatively, bring a pot of water to a boil. Add the serrano peppers and cook for 5 minutes. Add the tomatoes, 1 garlic clove, and onion, and cook until the tomato skins split, about 1-2 minutes. Cool slightly.
- Blend the serranos, onion, cooked garlic, 1 raw garlic clove, and 2 cups of water (or the tomato cooking water, if using the boiling method) until smooth. Add the tomatoes and pulse for a slightly textured salsa.
- Heat 2 tablespoons of oil in a saucepan over medium heat. Add 1 garlic clove and cook until lightly golden, then discard. Add the blended salsa, oregano, black pepper, and salt.
- Bring to a boil, reduce the heat, and simmer for 15-20 minutes, stirring occasionally. Adjust seasoning to taste.
Notes
- Always add water gradually, mixing until the dough is soft but not sticky-masa harina can vary slightly depending on the brand and humidity, so you may need a little more or less.
- Storage: Store cooked pupusas in an airtight container in the refrigerator for up to 3 days. Reheat in a skillet or microwave until warm.
- Make Ahead: Assemble pupusas up to 24 hours in advance. Store covered in the refrigerator until ready to cook.
- Freezing: Freeze uncooked pupusas in a single layer on a parchment-lined baking sheet until solid. Then, wrap pupusas individually in plastic and transfer them to a zipper-lock bag. Freeze for up to 1 month. Cook directly from frozen, increasing cooking time by 1 minute per side.
Nutrition
Nutrition Disclaimer: The nutritional information provided is an estimate, calculated using standard data sources. Actual values may vary based on ingredient brands, preparation methods, and portion sizes. This information is for general reference only and should not be considered a substitute for professional dietary advice.







