Main Courses
This black bean rotini recipe transforms simple ingredients into a hearty, protein-packed meal that’s as satisfying as it is nutritious. The secret lies in a spiced tomato-cream sauce that clings to al dente rotini, while black beans add depth and plant-based protein.
I developed this dish to prove that vegan meals can be rich, flavorful, and restaurant-worthy without compromise.
The recipe balances textures and flavors perfectly—tender pasta, creamy sauce, and earthy black beans come together in a single bowl. Roasting the tomatoes intensifies their natural sweetness, while a touch of garlic and smoked paprika adds warmth.
The sauce isn’t just creamy; it’s bold and aromatic, with just enough acidity to cut through the richness.
What sets this dish apart is its versatility. Serve it as a standalone meal or pair it with a side salad for extra freshness. The al dente rotini holds up beautifully, ensuring every bite delivers that perfect balance of creamy sauce, tender pasta, and hearty beans.
It’s the kind of dish that feels indulgent yet stays light enough for lunch or dinner.
Best of all, this recipe comes together in under 30 minutes with minimal prep. No fancy techniques required—just a few key steps to build layers of flavor. Let’s get cooking!
Ingredients for black bean rotini
Simple ingredients elevate this vegan black bean rotini to restaurant-worthy perfection.
| Ingredient | Amount | Notes |
|---|---|---|
| Rotini Pasta 🍝 | 12 oz | Al dente preferred, vegan-friendly |
| Canned Black Beans 🫘 | 1 ½ cups | Drained and rinsed well |
| Roma Tomatoes 🍅 | 1 ½ lb | Halved and roasted |
| Garlic Cloves 🧄 | 6 cloves | Minced for sauce |
| Full-Fat Coconut Milk 🥥 | 1 cup | Canned, full-fat preferred |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | For roasting tomatoes |
| Smoked Paprika 🌶️ | 1 ½ tsp | For depth of flavor |
| Ground Cumin 🌿 | ½ tsp | Toasted for warmth |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
| Fresh Basil Leaves 🌿 | ¼ cup | Chopped for garnish |
| Nutritional Yeast 🧀 | 2 tbsp | For cheesy umami flavor |
| Vegetable Broth 💧 | 1 cup | Low-sodium preferred |
The tomatoes are the flavor foundation—Roma tomatoes roast best for concentrated sweetness. Whole Foods or local markets often carry them in peak season, but any firm, ripe variety works. Roasting intensifies their natural sugars, balancing the earthy black beans. For the beans, drink the canned variety (like Goya) is ideal—avoid the pre-cooked, salt-packed brands. The garlic should be freshly minced (pre-minced loses punch), and the smoked paprika adds that subtle smokiness that makes this dish sing. Toast your spices in a dry pan for 30 seconds before adding to the sauce—Penzeys or bulk bins at natural stores are best for freshness.
No Roma tomatoes? Cherry tomatoes work in a pinch, but they’ll release more liquid. Substituting coconut milk? Full-fat is non-negotiable—light versions water down the sauce. The nutritional yeast is a must for that cheesy depth; Bob’s Red Mill️ is the most accessible brand. Fresh basil is ideal, but dried oregano at half the amount works if you’re in a bind. Want more richness? Blend in 1/4 cup silken tofu with the sauce. The vegetable broth can be swapped for white wine if you prefer, but reduce the lemon juice slightly to balance acidity.
Rotini cooks in about 10-11 minutes—test for al dente, as overcooking makes it mushy. Store leftovers in an airtight container with a thin layer of olive oil on top to prevent drying. Keeps 4-5 days in the fridge, and freezes beautifully for up to 3 months. For meal prep, cook the sauce separately and assemble with fresh pasta—this keeps the rotini perfectly al dente. Double the sauce and freeze it in portions for quick weeknight dinners.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this trick—just toss everything into one pot, simmer, and walk away. No chopping boards, no extra pans, and the rotini soaks up that creamy coconut-bean sauce like a dream. (Yes, even on a Tuesday night.)
- Creamy Without Guilt: That full-fat coconut milk turns this into a velvety bowl of goodness, but the black beans and tomatoes keep it hearty and satisfying. Honestly, it’s the kind of dish that makes you forget it’s actually good for you.
- Lunchbox Hero: Between us, this is my go-to for meal prep. The rotini holds up perfectly for days, and the flavors only get better as the tomatoes mellow out. Pack it cold or reheat it—either way, it’s a win.
- Budget-Friendly Feast: Canned beans, pantry staples, and a single can of coconut milk stretch this recipe into four or five servings without breaking the bank. I’ll be real: my grocery bill thanks me every time.
Step-by-step instructions for black bean rotini with spiced tomato-cream sauce
Here's how to create a restaurant-quality dish with perfectly al dente pasta and rich, aromatic sauce.
Roast the Roma Tomatoes for Depth of Flavor
Preheat your oven to 425°F and line a baking sheet with parchment paper. Arrange the halved Roma tomatoes cut-side down on the sheet, leaving space between each half. Drizzle with 2 tablespoons of the extra-virgin olive oil and sprinkle with ½ teaspoon of the smoked paprika and ½ teaspoon of the ground cumin.
Roast for 20-25 minutes until the edges are deeply caramelized and the tomatoes have collapsed slightly. You'll smell an intense, sweet aroma—this is when they've developed their signature depth. Remove from the oven and let cool slightly before blending. The tomatoes should be soft enough to mash easily with a fork, but still retain some texture.
Toast the Garlic and Build the Sauce Base
Heat the remaining 2 tablespoons extra-virgin olive oil in a large skillet over medium-low heat. Add the 6 minced garlic cloves and toast gently for 1-2 minutes until they're golden and fragrant—not browned. This step prevents bitter garlic flavors while building complex aromatics.
Transfer the roasted tomatoes to the skillet and mash them lightly with a wooden spoon. Add the 1 cup vegetable broth, scraping up any browned bits from the bottom of the pan. Bring to a gentle simmer and cook for 5 minutes until the liquid reduces slightly and the sauce thickens. Remove from heat and let cool for 5 minutes before blending.
Create the Creamy Sauce Foundation
Transfer the tomato mixture to a blender along with the 1 cup full-fat coconut milk, 1 tablespoon lemon juice, 2 tablespoons nutritional yeast, and remaining 1 teaspoon smoked paprika and ½ teaspoon ground cumin. Blend until completely smooth, scraping down the sides as needed. The sauce should be velvety with no visible texture.
Return the blended sauce to the skillet and simmer gently over medium-low heat for 5-7 minutes until it reaches your desired consistency. It should coat the back of a spoon but still be pourable. Taste and adjust seasoning with the remaining 1 teaspoon salt and ½ teaspoon black pepper—this sauce carries the dish, so balance is critical.
Cook the Rotini to Al Dente Perfection
While the sauce simmers, bring a large pot of water to a rolling boil and add 1½ teaspoons salt. Add the 12 oz rotini pasta and cook according to package instructions until 1 minute shy of al dente. Reserve ½ cup pasta water before draining, then toss the pasta with 1 tablespoon olive oil to prevent sticking.
Add the drained pasta to the skillet with the sauce and toss gently to coat. If needed, add reserved pasta water 1 tablespoon at a time until the sauce clings beautifully to each strand. The pasta should be tender but still offer slight resistance when bitten—this is the hallmark of perfect al dente texture.
Finish and Serve with Fresh Basil
Remove the skillet from heat and stir in the 1.5 cups drained black beans and ¼ cup chopped fresh basil leaves. Let the dish rest for 2-3 minutes to allow the flavors to meld completely. The beans should be warmed through and the basil should release its bright aroma into the sauce.
Divide among four plates and garnish with additional basil leaves. Serve immediately with a sprinkle of extra nutritional yeast for that final cheesy umami kick. Each bite should deliver a perfect balance of creamy tomato sauce, hearty black beans, and al dente pasta—proof that simple ingredients can create extraordinary results when prepared with care.
Pro Tips For Making Black Bean Rotini
- Sauté Garlic Low and Slow: I learned this the hard way—burnt garlic ruins everything. For this dish, add the minced cloves to the pan after the tomatoes soften, then cook them on medium-low heat until they’re golden but not crispy. You want that sweet, nutty aroma, not bitter smoke.
- Rinse Beans, But Keep Some Juice: Draining and rinsing canned black beans removes excess sodium, but don’t strip them dry. Leave about ¼ cup of the liquid clinging to the beans—it adds creaminess later, especially when mixed with coconut milk. (Yes, even if you’re impatient like me.)
- Blanch Tomatoes First: Skip the chopping mess by blanching Roma tomatoes in boiling water for 30 seconds, then shocking in ice water. The skins slip off like magic, and you avoid that weird, mealy texture when they cook down. Worth the extra bowl.
- Add Coconut Milk Last: Full-fat coconut milk loves heat, but adding it too early turns the sauce greasy. Wait until the tomatoes and beans are simmering, then stir it in and let it warm through—just until it’s silky, not boiling. (Your future self will thank you.)
Troubleshooting this dish
Sauce Too Thin?
If your sauce feels too watery after blending, simmer it uncovered for an extra 3-5 minutes to reduce. I’ve found that using full-fat coconut milk helps thicken naturally, but if it’s still thin, stir in 1 teaspoon cornstarch mixed with 1 tablespoon water until glossy.
The key is patience—rushing the reduction can make the sauce break or separate. 🌡️
Pasta Overcooked?
Rotini cooks fast, so test it 1 minute before the package suggests. If it’s mushy, your sauce will turn into a soggy mess. I always reserve ½ cup pasta water to adjust consistency—add it 1 tablespoon at a time to loosen the sauce without diluting flavors.
Pro tip: Toss pasta with 1 tablespoon olive oil right after draining to prevent sticking. 🍝
Beans Too Salty?
Rinse canned black beans twice under cold water to remove excess sodium. If they still taste salty, balance them with 1 extra tablespoon lemon juice or a pinch of smoked paprika.
I’ve also added ¼ cup diced avocado or fresh cilantro to cut through saltiness—both work like a charm. 🫘
Sauce Separates?
This happens if coconut milk isn’t fully blended or the sauce cooks too vigorously. To fix it, whisk in 1 tablespoon cold water or reserved pasta water while stirring constantly over low heat until smooth.
For prevention, blend the sauce on high speed for 30 seconds after adding coconut milk to emulsify it properly. 💫
Flavor Too Muted?
Boost depth by toasting spices: dry-toast ½ teaspoon cumin and ½ teaspoon smoked paprika in a pan for 30 seconds until fragrant before adding to the sauce. For extra umami, stir in 1 teaspoon soy sauce or ½ teaspoon miso paste at the end.
I also love adding 1 tablespoon tomato paste to the sauce base for richness. 🌶️
Dressing Too Heavy?
Lighten the sauce by adding 2 tablespoons fresh basil or ¼ cup chopped parsley—herbs brighten the dish without extra calories. For a tangy twist, mix in 1 teaspoon apple cider vinegar or extra lemon juice.
If the sauce feels too rich, serve it over a bed of arugula or spinach to balance the plate. ✨
Nutrition facts
Frequently asked questions
Can I use other types of pasta instead of rotini?
This recipe works beautifully with fusilli, penne, or even farfalle. The key is choosing a pasta with ridges or holes to help it hold the creamy sauce. Avoid smooth, slippery pastas like spaghetti—the sauce won't cling as well. For best results, stick to 12 oz of any pasta shape and cook it to al dente.
How can I make this recipe gluten-free?
Swap the rotini for gluten-free rotini or quinoa pasta—both hold up well to the sauce. Double-check that your black beans are certified gluten-free (some brands process in shared facilities). The rest of the ingredients are naturally gluten-free, so no other substitutions are needed. Just ensure your vegetable broth is also gluten-free.
What's the best way to reheat leftovers?
Reheat gently in a skillet over low heat with 2 tablespoons water or broth to prevent drying. Stir frequently and add more liquid if needed. Microwaving works too—cover with a damp paper towel and heat in 30-second intervals until warmed through. For extra freshness, toss in 1 tablespoon lemon juice or fresh basil after reheating.
Can I add protein like chicken or tofu?
Yes! For extra protein, stir in 1 cup cooked chicken breast (shredded or diced) or ½ cup crumbled tofu (pan-fried with smoked paprika). Add the protein during the final 2 minutes of reheating to warm through. If using tofu, press it first to remove excess moisture. The black beans already provide 15g protein per serving, so you can adjust based on your needs.
Why does my sauce taste bland?
Blandness usually means the spices weren't toasted enough or the sauce needs more acidity. Toast your cumin and smoked paprika in a dry pan for 30 seconds before adding to the sauce. For brightness, increase the lemon juice to 2 tablespoons or add 1 teaspoon apple cider vinegar. A pinch of garlic powder or onion powder can also deepen the flavor.
