Bean Shakshuka Recipe: Poached Eggs in Spiced Tomato-Bean Sauce

Breakfast & Brunch

Bean Shakshuka Recipe: Poached Eggs in Spiced Tomato-Bean Sauce

This bean shakshuka recipe transforms humble ingredients into a hearty, protein-packed dish that elevates breakfast to dinner status. The secret lies in simmering white beans with tomatoes, peppers, and warm spices until they create a rich, slightly thickened sauce—then poaching eggs directly in the pot.

I developed this version after craving something heartier than traditional shakshuka, and the beans add satisfying texture and plant-based protein without compromising flavor.

The beauty of this recipe is its balance: the beans provide substance while soaking up the aromatic sauce, while the poached eggs add richness and creaminess. You'll start with a simple sauté of onions, garlic, and peppers, then build depth with canned tomatoes, spices, and simmered beans.

The eggs cook gently in the warm sauce, creating a perfect yolk that cuts through the vibrant, spiced tomato mixture.

What you'll end up with is a dish that's equally at home on a weekend brunch table or a weeknight dinner—warm, comforting, and packed with Mediterranean flavors. The sauce carries just enough heat from smoked paprika and cumin, while the beans add earthy depth.

Serve with crusty bread for soaking up every last bit of that flavorful sauce.

This recipe works beautifully as a vegetarian main course or can be easily adapted for vegan diets by omitting the eggs. The technique is straightforward but delivers restaurant-quality results that taste even better the next day. Let's get cooking—your taste buds will thank you.

👨‍🍳
Difficulty
Medium
🌿
Diet
Vegetarian
🔥
Calories
Med Cal

Ingredients for bean shakshuka

Humble pantry staples meet Mediterranean flavors in this hearty bean shakshuka.

Ingredient Amount Notes
Extra-Firm Tofu 🍳 14 oz Cubed for protein substitute
Canned Diced Tomatoes 🍅 14 ½ oz San Marzano preferred
Bell Peppers 🧅 1 whole Any color, diced
Yellow Onion 🧅 1 whole Diced, medium size
Garlic Cloves 🧄 4 cloves Minced, fresh preferred
White Beans 🌱 1 ½ cups Canned, drained and rinsed
Smoked Paprika 🌶️ 1 tbsp For smoky depth
Ground Cumin 🌿 1 tsp Toasted preferred
Salt 🧂 1 tsp Diamond Crystal preferred
Black Pepper 🌶️ ½ tsp Freshly ground
Extra-Virgin Olive Oil 🫒 ¼ cup For sautéing
Large Eggs 🥚 4 whole Freshest available
Fresh Parsley 🌿 ¼ cup Chopped for garnish
Crusty Bread 🍞 8 slices For serving

The white beans are the game-changer here—canned is fine, but if you've got dried, soak them overnight for extra depth. Trader Joe's has the best canned white beans, but any good-quality brand works. The tofu cubes should be pressed for 15 minutes to remove excess water—skip this step and the sauce will get watery. For the tomatoes, San Marzano is worth the splurge if you're using them often, but regular canned works perfectly fine. Bell peppers should be vibrant, not wilted—red or yellow both work, but green adds a slight bitterness that some people prefer.

No smoked paprika? Regular paprika plus pinch of cayenne gets you close. Fresh cumin seeds toasted in the oil? Game-changer, but ground cumin works in a pinch. The eggs are non-negotiable for that perfect runny yolk—freshest you can find. For a vegan version, simply omit the eggs and add extra beans or crumbled tofu. The crusty bread should be day-old or lightly toasted—fresh bread gets soggy fast. If you're short on time, baguette slices from the bakery section work perfectly.

This sauce tastes even better the next day—make extra and store it in the fridge for up to 5 days. The eggs should be cooked fresh in the sauce, but you can reheat the bean mixture separately and add poached eggs on top. For freezing, portion the sauce without eggs—3 months max. The bread? Keep it wrapped in a paper bag at room temperature for up to 3 days or freeze slices individually for longer storage.

❤️

Why You'll Love This Recipe

  • I’ll be real: it’s cheap, filling, and uses pantry staples. A block of tofu, a can of tomatoes, and a few veggies stretch for four servings, and the flavors only get better as it sits. My wallet—and my taste buds—thank me every time.
  • One-Pan Magic: I swear by this recipe because it’s all about minimal cleanup—just one skillet, one spatula, and a handful of ingredients. The tofu gets crispy in the same pan where the tomatoes simmer, and honestly? That’s my kind of cooking.
  • Spice & Cream Combo: Between us, the smoky garlic and sweet bell peppers make this dish ridiculously good—like a warm hug in a bowl. The canned tomatoes add depth without fuss, and the tofu soaks up all the flavor while staying tender. (Yes, even on a Tuesday night.)
  • Lunch or Dinner Fix: This recipe works for any meal—pack it for work, serve it for date night, or let the kids pick it for a school lunch. The leftovers taste just as good cold the next day, and I’ve even reheated it straight from the fridge for a lazy morning.

Step-by-step instructions for bean shakshuka

This method delivers a hearty, flavorful dish with perfectly poached eggs and rich tomato-bean sauce.

1

Sauté Aromatics and Cook the Tofu

Heat the 0.25 cup extra-virgin olive oil in a large skillet over medium heat. Add the 1 whole diced yellow onion and cook for 5 minutes until softened and translucent. Add the 1 whole diced bell pepper and continue cooking for another 5 minutes until the peppers begin to soften.

Push the vegetables to one side of the skillet and add the 14 oz cubed extra-firm tofu. Cook for 4-5 minutes until lightly golden. Stir in the 4 cloves minced garlic and cook for 30 seconds until fragrant. This step builds the flavor foundation while ensuring the tofu develops a nice texture.

2

Build the Spiced Tomato-Bean Sauce

Add the 14.5 oz canned diced tomatoes, 1.5 cups drained white beans, 1 tbsp smoked paprika, 1 tsp ground cumin, 1 tsp salt, and 0.5 tsp black pepper to the skillet. Stir well to combine all ingredients, then reduce the heat to low-medium.

Let the mixture simmer uncovered for 15-20 minutes until it thickens slightly and the flavors meld together. You want the sauce to coat the back of a spoon but still maintain a loose consistency for the eggs. Stir occasionally to prevent sticking, and taste to adjust seasoning if needed. The beans should be heated through and the tomatoes should break down into a rich sauce.

3

Create Wells for the Eggs

Once the sauce is ready, use a spoon to create four shallow wells in the sauce, spacing them evenly apart. Crack each of the 4 whole large eggs gently into a separate well. The eggs should sit partially submerged in the sauce, with their whites spread around the yolks.

Cover the skillet and cook for 6-8 minutes over low heat, until the egg whites are set but the yolks remain runny. You'll know the eggs are ready when the whites are opaque and the yolks still have that beautiful liquid center. Avoid peeking under the lid during this time to prevent the eggs from overcooking.

4

Finish and Serve

Remove the skillet from heat and let it sit for 2-3 minutes to allow the eggs to fully set. Sprinkle the 0.25 cup chopped fresh parsley evenly over the top of the shakshuka. The parsley adds a fresh contrast to the rich, spiced sauce and eggs.

Serve immediately with the 8 slices crusty bread on the side. The bread is perfect for soaking up the flavorful sauce, and the combination of the hearty bean-tofu mixture, poached eggs, and crusty bread makes for a satisfying meal. Each bite should offer a balance of smoky, spiced flavors with the creaminess of the eggs and the heartiness of the beans.

👨‍🍳

Pro Tips For Making Bean Shakshuka

  • CRISP THE TOFU FIRST: Skip the soggy tofu trap—pat those extra-firm blocks bone-dry with paper towels, then pan-fry them in 1 tablespoon of oil until golden on all sides (about 4-5 minutes per side). The crispy edges hold up better in the sauce and add texture that mushy tofu can’t.
  • SAUTÉ ONIONS LOW AND SLOW: I used to rush this step and end up with bitter onions. Instead, cook them on medium-low for 8-10 minutes until they’re translucent and just starting to caramelize—no need for a deep golden color here. This builds flavor without burning.
  • DRAIN AND RINSE TOMATOES: Canned diced tomatoes hide salt and preservatives that turn shakshuka murky. Drain them, then rinse under cold water to cut the bitterness. If using fire-roasted, skip the rinse—just drain well. Your sauce will taste brighter.
  • SIMMER THE SAUCE UNTIL THICK: After adding tomatoes and spices, let the sauce bubble uncovered for 10-12 minutes. This evaporates excess water and concentrates the flavors—don’t walk away. A thicker sauce clings better to the tofu and beans, making every bite richer.

Regional styles of bean shakshuka

North African Roots

This bean shakshuka traces its origins to Tunisia and Morocco, where traditional versions often feature eggs poached in a tomato-pepper sauce with harissa or preserved lemons. The North African style emphasizes smoky, earthy flavors from cumin and coriander, while fresh herbs like cilantro and parsley brighten the dish.

I love how the white beans add a satisfying texture that's common in North African stews like lablabi. 🌶️

The Tunisian version often includes preserved lemon for a tangy kick, while Moroccan adaptations might add ras el hanout spice blend. For an authentic touch, I sometimes add a pinch of saffron to the sauce—it's subtle but adds luxurious depth.

The dish is traditionally served with khobz (North African bread) for dipping.

Middle Eastern Twist

In Israel and Lebanon, shakshuka often includes chickpeas instead of white beans, creating a lighter, more herb-forward dish. The Middle Eastern approach focuses on bright, citrusy flavors with additions like sumac or za'atar sprinkled on top.

I've experimented with adding crumbled feta for a salty contrast, which works beautifully with the smoky paprika base.

The Lebanese version sometimes includes tomato paste for a deeper color, while Israeli shakshuka might feature diced eggplant for extra heartiness. For a Middle Eastern-inspired twist, I recommend adding a splash of lemon juice at the end to brighten the flavors—about 1 tablespoon does the trick.

Mediterranean Adaptations

Greek and Turkish versions of shakshuka often incorporate feta cheese and dill, creating a tangy, herby profile. The Mediterranean approach leans into olive oil richness and fresh herbs like parsley and mint.

For a Greek-inspired version, I add a handful of crumbled feta on top before serving—it melts slightly into the warm sauce. 🌿

In Turkey, the dish might include diced zucchini or eggplant for extra vegetables, while Greek adaptations often feature olives for briny contrast. The Mediterranean style works especially well with grilled bread or pita for serving. For a quick variation, I sometimes add a sprinkle of oregano during the simmering process.

Modern Fusion Versions

For a Mexican-inspired twist, swap smoked paprika for chipotle powder and add diced jalapeños to the sauce. The beans pair perfectly with avocado slices on top, creating a creamy, spicy fusion.

I've also made a Thai-inspired version using red curry paste instead of smoked paprika and topping with fresh cilantro and lime wedges. 🌶️

In my kitchen, I've experimented with adding crispy chickpeas on top for texture or a drizzle of harissa for heat. For a vegan-friendly fusion, I've replaced eggs with tofu scramble or chickpea flour fritters—both work surprisingly well when poached in the sauce.

Nutrition facts

Servings 4
Amount Per Serving
Calories 380kcal
% Daily Value *
Total Fat 20g26%
Saturated Fat 3g15%
Cholesterol 185mg62%
Sodium 650mg28%
Total Carbohydrate 35g12%
Dietary Fiber 9g32%
Sugars 10g
Protein 22g44%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I make this bean shakshuka vegan?

Simply omit the eggs and add extra 1 cup white beans or 14 oz crumbled tofu for protein. For a richer texture, stir in 2 tablespoons tahini at the end. The sauce will still be hearty and flavorful without eggs.

2

How do I prevent the sauce from getting too watery?

Simmer the sauce uncovered for 15-20 minutes to let excess moisture evaporate. If it's still too thin, mash half the beans with a fork to thicken naturally. Avoid adding tomato paste—it can make the sauce overly acidic. For extra richness, stir in 1 tablespoon olive oil at the end.

3

What's the best way to reheat leftovers?

Reheat the bean mixture (without eggs) in a skillet over low heat for 5-7 minutes, stirring occasionally. Add fresh eggs to the warm sauce and cover for 6-8 minutes to poach them. For a quick fix, microwave the sauce for 2 minutes, then poach eggs separately in the reheated sauce. Store leftovers for up to 5 days.

4

Can I use different types of beans?

Yes! White beans work best for their mild flavor, but you can substitute chickpeas (for a Middle Eastern twist) or kidney beans (for extra heartiness). Drain and rinse all canned beans thoroughly. For texture, try crispy roasted chickpeas on top instead of eggs.

5

Why did my eggs turn out rubbery?

Rubbery eggs usually mean they cooked too long. Keep heat at low and cover the pan completely. Check eggs after 5 minutes—they should be set but still runny. For perfect results, use room-temperature eggs and avoid peeking under the lid. If they overcook, try making tofu scramble next time!

★★★★★4.6(10 reviews)
Categories Breakfast & Brunch