Quick Recipe Version (TL;DR)
Quick Ingredients
- 12 oz short pasta (rigatoni, orecchiette, or penne)
- 3 tbsp extra-virgin olive oil
- 1 small yellow onion, finely diced
- 6 cloves garlic, thinly sliced
- 1/2 tsp crushed red pepper flakes (optional)
- 1 bunch kale (about 8 oz), stems removed, leaves chopped
- 2 cans (15 oz each) cannellini beans, drained and rinsed
- 1/2 cup dry white wine
- 2 cups low-sodium vegetable or chicken broth
- 1 cup reserved pasta cooking water (as needed)
- 1 tsp kosher salt, plus more to taste
- 1/2 tsp freshly ground black pepper
- 1 lemon (zest and 1 tbsp juice)
- 1 cup finely grated Parmigiano Reggiano or Parmesan, plus more for serving
- 1 tbsp unsalted butter (optional, for richness)
- Fresh parsley or extra kale ribbons, for garnish (optional)
Do This
- 1) Bring a large pot of well-salted water to a boil. Cook pasta until just al dente. Reserve 1–1 1/2 cups pasta water, then drain.
- 2) While pasta cooks, heat olive oil in a wide pan over medium heat. Sauté onion with a pinch of salt until soft, 5–7 minutes.
- 3) Add garlic and red pepper flakes; cook 1–2 minutes until fragrant but not browned.
- 4) Stir in cannellini beans, then pour in white wine. Simmer 2–3 minutes, scraping up any browned bits.
- 5) Add broth and kale. Simmer 5–7 minutes until kale is tender and liquid reduces slightly.
- 6) Add cooked pasta to the pan with lemon zest, Parmesan, butter, and some reserved pasta water. Toss until glossy and creamy. Adjust salt, pepper, and lemon juice. Serve hot with extra Parmesan.
Why You’ll Love This Recipe
- Comforting and hearty, yet packed with fiber-rich beans and nutrient-dense kale.
- Uses simple pantry staples and one bunch of greens to create a deeply flavorful Italian-style meal.
- The white wine, garlic, and Parmesan build a silky, restaurant-quality sauce in one pan.
- Flexible and forgiving: easy to make vegetarian, dairy-free, or gluten-free with simple swaps.
Grocery List
- Produce: 1 small yellow onion, 1 head garlic, 1 bunch kale, 1 lemon, fresh parsley (optional)
- Dairy: Parmigiano Reggiano or Parmesan cheese, unsalted butter (optional)
- Pantry: Short pasta, 2 cans cannellini beans, extra-virgin olive oil, dry white wine, vegetable or chicken broth, kosher salt, black pepper, crushed red pepper flakes (optional)
Full Ingredients
Pasta
- 12 oz short pasta, such as rigatoni, orecchiette, or penne
- Kosher salt, for the pasta water (about 1 1/2 tbsp for a large pot)
Beans & Greens
- 2 cans (15 oz each) cannellini beans, drained and rinsed
- 1 bunch kale (about 8 oz), tough stems removed, leaves chopped into bite-size pieces
Aromatics & Sauce Base
- 3 tbsp extra-virgin olive oil
- 1 small yellow onion, finely diced
- 6 cloves garlic, thinly sliced or minced
- 1/2 tsp crushed red pepper flakes (optional, for gentle heat)
- 1/2 cup dry white wine (such as Pinot Grigio or Sauvignon Blanc)
- 2 cups low-sodium vegetable or chicken broth
- 1 tsp kosher salt, plus more to taste
- 1/2 tsp freshly ground black pepper, plus more to taste
Finishing & Garnish
- 1–1 1/2 cups reserved pasta cooking water (you may not need it all)
- 1 lemon: finely grated zest and 1 tbsp fresh juice
- 1 cup finely grated Parmigiano Reggiano or Parmesan cheese, packed
- 1 tbsp unsalted butter (optional, for extra richness and gloss)
- Fresh parsley, chopped, or a few raw kale ribbons, for garnish (optional)
- Extra grated Parmesan and a drizzle of olive oil, for serving (optional)

Step-by-Step Instructions
Step 1: Boil the pasta water and prep your ingredients
Fill a large pot with water, add about 1 1/2 tablespoons of kosher salt, and bring it to a rolling boil over high heat.
While the water heats, prep the ingredients: finely dice the onion, slice or mince the garlic, rinse and drain the cannellini beans, and strip the kale leaves from their stems. Discard the tough stems and chop the leaves into bite-size pieces. Zest the lemon (avoiding the bitter white pith) and set the zest aside; then cut the lemon and squeeze out 1 tablespoon of juice. Grate the Parmesan if it is not already grated.
Step 2: Cook the pasta until just al dente
Once the water is boiling, add the pasta and cook according to package directions, but check 1–2 minutes early. You want it just al dente, as it will finish in the sauce.
Before draining, carefully scoop out 1–1 1/2 cups of the starchy pasta water and set it aside. Drain the pasta in a colander. Do not rinse. If your sauce is not quite ready, you can toss the pasta with a small drizzle of olive oil to prevent sticking.
Step 3: Soften the aromatics in olive oil
While the pasta cooks, place a large, wide skillet or Dutch oven over medium heat. Add 3 tablespoons of olive oil. When the oil is shimmering but not smoking, add the diced onion and a pinch of salt.
Cook, stirring occasionally, until the onion is very soft and translucent, 5–7 minutes. Lower the heat slightly if it starts to brown too quickly. Add the sliced garlic and crushed red pepper flakes (if using). Cook for 1–2 minutes, stirring frequently, until the garlic smells fragrant and just begins to turn lightly golden at the edges. Do not let it burn, or it will taste bitter.
Step 4: Build flavor with beans and white wine
Stir the cannellini beans into the pan, coating them in the garlicky oil. Let them cook for 1–2 minutes, lightly toasting and warming through. Use the back of a spoon to gently mash a small handful of beans against the side of the pan; this helps thicken the sauce later while keeping most beans whole.
Pour in the 1/2 cup of dry white wine. It should sizzle immediately. Use a wooden spoon to scrape up any browned bits from the bottom of the pan. Simmer for 2–3 minutes, until the wine has reduced by about half and no longer smells strongly of alcohol. This reduction step concentrates the wine’s flavor and adds rustic depth to the sauce.
Step 5: Simmer the kale and broth
Add the 2 cups of broth to the pan, along with 1 teaspoon kosher salt and 1/2 teaspoon black pepper. Bring the mixture to a gentle simmer over medium heat.
Stir in the chopped kale. At first it will look like too much, but it will wilt down quickly. Cover the pan partially (or use a lid slightly ajar) and simmer for 5–7 minutes, stirring occasionally, until the kale is tender but still a deep green and the liquid has reduced slightly. You want a brothy, flavorful base that will coat the pasta rather than drown it.
Step 6: Combine pasta and sauce into a creamy, glossy tangle
Add the drained pasta directly into the pan with the beans, kale, and broth. Toss well to coat the pasta in the sauce. Reduce the heat to low.
Add the lemon zest, 1 cup grated Parmesan, and the butter (if using). Pour in about 1/2 cup of reserved pasta water to start. Toss vigorously with tongs or a wooden spoon for 1–2 minutes. The starch from the pasta water and the cheese will emulsify with the olive oil and broth, creating a silky, lightly creamy sauce that clings to each piece of pasta.
If the mixture looks dry or the cheese seems clumpy, add more reserved pasta water a splash at a time, tossing in between, until the sauce is loose, glossy, and coats the pasta beautifully. Taste and adjust with more salt, black pepper, and about 1 tablespoon of lemon juice, or more to brighten the flavors.
Step 7: Finish, garnish, and serve
When the pasta is perfectly coated and the beans and kale are evenly distributed, remove the pan from the heat. Let it sit for 1 minute to allow the sauce to settle and thicken slightly.
Serve the pasta in warm bowls. Top each portion with an extra shower of grated Parmesan, a drizzle of good olive oil, and a sprinkle of chopped fresh parsley or a few thin raw kale ribbons for color and texture. Add a final twist of black pepper if you like. Enjoy immediately while hot, with extra lemon wedges and more cheese at the table.
Pro Tips
- Salt your pasta water well. The pasta water should taste pleasantly salty; this is your first chance to season the entire dish from the inside out.
- Do not skip reducing the wine. Letting the wine simmer briefly before adding broth cooks off harsh alcohol flavors and concentrates its earthy, rustic depth.
- Use pasta water to control creaminess. Add it gradually as you toss with the cheese until the sauce looks glossy and clings to the pasta, not watery or thick and sticky.
- Balance with lemon at the end. The brightness of fresh lemon zest and juice keeps the dish from feeling heavy and highlights the garlic and greens.
- Grate cheese finely. Very finely grated Parmesan melts more easily into the sauce, preventing clumps and helping create that creamy, restaurant-style finish.
Variations
- Spicy sausage twist: Brown 8 oz of Italian sausage (casings removed) in the pan before adding the onion. Render until cooked through and lightly crisp, then proceed with the recipe. This adds extra richness and a meaty boost.
- Tomato-kissed version: After sautéing the garlic, stir in 2 tablespoons of tomato paste and cook for 1–2 minutes before adding the beans and wine. This creates a deeper, slightly tomatoey sauce while keeping the beans and greens at the center.
- Vegetarian and dairy-free: Use vegetable broth and omit the Parmesan and butter. Instead, add 2–3 tablespoons of nutritional yeast and a splash of extra olive oil, plus extra lemon for brightness. Use your favorite dairy-free hard cheese if desired.
Storage & Make-Ahead
Cool leftovers to room temperature, then transfer them to an airtight container. Refrigerate for up to 3 days. The pasta will continue to absorb sauce as it sits, so it may be thicker on day two.
To reheat, add a splash of water or broth to a skillet, then add the leftover pasta. Warm gently over medium-low heat, stirring often, until heated through and the sauce loosens. Add a bit more lemon juice and grated Parmesan to refresh the flavors.
You can also make parts of this dish ahead: cook the beans-and-kale base (through Step 5), cool, and refrigerate for up to 2 days. When ready to serve, cook fresh pasta, then warm the base and continue with Step 6, combining with fresh pasta and cheese for the best texture.
Nutrition (per serving)
Approximate values per serving (1/4 of the recipe): about 700 calories; 30 g protein; 22 g fat; 95 g carbohydrates; 11 g fiber; 7 g saturated fat; 900 mg sodium (will vary based on broth, salt, and cheese); 8 g sugar (mostly from vegetables and wine). These numbers are estimates and will change with ingredient brands and optional additions or omissions.

