This is the recipe I make on the Friday night when nothing has been planned, the refrigerator is mostly empty, and dinner needs to materialize anyway. The whole thing comes together in about 30 minutes from shelf-stable ingredients, with the only fresh element being whatever greens are still salvageable from the produce drawer. Cost is low; effort is low; result is meaningfully better than its inputs would suggest.
The technique that makes this work is simple: scoop out about a third of the beans, smash them with a fork or potato masher, and stir them back into the broth. The smashed beans thicken the liquid and give the soup body without any cream. This step is the only thing that elevates this above generic bean soup; do not skip it.
Ingredients
Serves 4.
- 2 tablespoons olive oil
- 1 yellow onion, diced
- 3 cloves garlic, minced
- 2 stalks celery, diced (optional)
- 1 large carrot, diced (optional)
- 1 teaspoon dried thyme (or 1 tablespoon fresh, chopped)
- ½ teaspoon red pepper flakes (optional)
- 3 cans (15 oz each) cannellini, navy, or great northern beans, drained but not rinsed
- 4 cups low-sodium chicken or vegetable broth
- 1 bay leaf
- Kosher salt and pepper
- 4 cups roughly chopped hearty greens (kale, escarole, chard, etc.)
- ½ lemon, juiced (about 1.5 tablespoons)
- ¼ cup chopped fresh parsley
- Optional toppings: grated Parmesan, a drizzle of good olive oil, crusty bread
Instructions
-
Sauté the aromatics. Heat the olive oil in a large pot or Dutch oven over medium heat. Add the diced onion and cook for 5 to 6 minutes, stirring occasionally, until softened and starting to color. Add the garlic, celery, and carrot (if using) and cook for another 3 minutes.
-
Bloom the herbs. Add the dried thyme and red pepper flakes to the pot. Stir for 30 seconds until fragrant.
-
Add the beans and broth. Add the drained beans, the broth, and the bay leaf to the pot. Add ½ teaspoon kosher salt. Bring to a simmer over medium-high heat.
-
Smash some of the beans. Once the soup is simmering, use a slotted spoon to scoop out about 1 cup of the beans (about a third of the total). Place them on a small plate or in a small bowl, and mash them with a fork or potato masher until they form a rough paste. Stir the smashed beans back into the soup. The liquid will thicken visibly within a minute.
-
Simmer. Lower the heat and simmer the soup for 10 minutes, stirring occasionally.
-
Add the greens. Stir in the chopped greens. For tougher greens (kale, escarole, chard), simmer for 5 to 8 more minutes until tender. For spinach or other tender greens, simmer for 1 to 2 minutes only.
-
Finish. Remove the bay leaf. Stir in the lemon juice and chopped parsley. Taste and adjust — additional salt, more pepper, more lemon if it tastes flat.
-
Serve. Ladle into bowls. Top with grated Parmesan, a drizzle of olive oil, and a piece of crusty bread alongside if available.
Notes
The decision to include or skip the celery and carrot depends on what is in the kitchen. The soup is fine without them; it is somewhat better with them.
For a more substantial soup, add a Parmesan rind during step 3 (remove before serving) — this adds significant umami depth.
The lemon juice at the end is essential. Bean soup without acid tastes flat in a way that more salt does not fix. If you don’t have lemon, a tablespoon of white wine vinegar or apple cider vinegar substitutes acceptably.
Per-serving nutrition (approximate, with celery and carrot)
- Calories: 365
- Protein: 19 g
- Carbohydrate: 56 g
- Fat: 9 g
(Calculated from USDA FoodData Central per-ingredient values, summed across the ingredient list, divided by 4 servings. Actual values will vary with specific ingredients and portion size.)