Simmer white beans, tomatoes and spinach into a hearty stew. Includes a simple thickening method, vegetable swaps and make-ahead advice.
This thick bean stew starts with slowly softened onion, carrot and celery, then uses canned white beans to keep the simmering time manageable. Mashing a small portion of the beans gives the broth body without adding cream. Rosemary and lemon balance the tomatoes, and spinach is stirred in only when the carrots are tender.
Serves: 4 servings. Estimated prep: 15 minutes. Estimated cooking: 30 minutes. Timings are estimates; use the texture and doneness checks below.
Equipment: A medium heavy saucepan or casserole, wooden spoon, colander and potato masher or fork.
Ingredients
- 2 tablespoons olive oil
- 1 onion, finely chopped
- 2 medium carrots, cut into small dice
- 2 celery sticks, finely diced
- 3 garlic cloves, finely chopped
- 1 tablespoon tomato paste
- 1 teaspoon finely chopped fresh rosemary, or 1/2 teaspoon dried
- 1 can (400 g) chopped tomatoes
- 3 cans (400 g each) cannellini beans, drained and rinsed, about 720 g drained total
- 600 ml low-sodium vegetable stock
- 150 g baby spinach, washed
- 1 tablespoon lemon juice
- 1/2 teaspoon fine salt, then adjust to taste
- 1/4 teaspoon black pepper
- Crusty bread, to serve, optional
Instructions
- Soften the base. Heat the oil over medium heat. Add onion, carrot and celery and cook for 8–10 minutes, stirring, until the onion is soft. If the vegetables begin to stick, add a spoonful of water rather than raising the heat.
- Add aromatics. Stir in garlic, tomato paste and rosemary. Cook for 1 minute, keeping the mixture moving so the garlic and tomato paste do not scorch.
- Simmer the stew. Add tomatoes, drained beans and stock. Bring to a gentle simmer, partially cover and cook for about 15 minutes. Stir occasionally and check that the carrot dice are tender before moving on.
- Thicken with beans. Ladle a small scoop of beans and broth into a bowl and mash with a fork. Stir it back into the pan. Simmer uncovered for a few minutes if you prefer a thicker stew, or add water to loosen it.
- Add the spinach. Stir the spinach into the hot stew in batches and simmer for 2–3 minutes, until wilted and tender. Keep the heat gentle so the remaining beans stay mostly whole.
- Balance and serve. Remove from the heat and add lemon juice and pepper. Taste before adding salt, especially if the stock is already seasoned. Serve in warm bowls with bread if desired.
Use cooked beans
This recipe uses canned, already-cooked beans. Dry beans cannot be substituted directly into the same short simmer. If you cook beans from dried, use about 720 g drained cooked beans and follow appropriate preparation instructions for that bean variety. Butter beans work too but break apart more easily.
Choose the final consistency
For a spoonable stew, the broth should coat the beans without being a paste. The mixture thickens as it cools because of the mashed beans. When reheating, add liquid gradually; a large splash can turn it into soup before the beans have warmed through.
Make-ahead and vegetable swaps
The base can be made without spinach and chilled, then the greens added while reheating. Chopped kale needs a longer simmer than baby spinach; add it earlier and cook until tender. Omit the optional bread or choose a suitable alternative for a wheat-free meal.
Storage and reheating
Refrigerate leftovers promptly in shallow covered containers, within 2 hours or within 1 hour above 32°C/90°F. Keep at 4°C/40°F or colder and use within 3–4 days. Reheat to 74°C/165°F throughout. Add a small splash of water to rice, pasta or stew as needed and stir so it heats evenly.
Allergen notes
Contains celery. Stock and bread may contain wheat or other allergens; check labels.
Food-safety reference: USDA safe cooking, cooling and leftover guidance.
More meal ideas
Browse the complete recipe index for more meals, salads and desserts.
This recipe has not been kitchen-tested by Tasty Food. Cooking times are estimates. The featured image is an AI-generated serving illustration and may differ from your result.
