The Best Minestrone Soup

The best minestrone is the one you can make without going to the store.

By
J. Kenji López-Alt
Kenji Lopez Alt
Culinary Consultant
Kenji is the former culinary director for Serious Eats and a current culinary consultant for the site. He is also a New York Times food columnist and the author of The Food Lab: Better Home Cooking Through Science.
Learn about Serious Eats' Editorial Process
Updated February 18, 2025

Why It Works

  • Building a flavorful soup out of simple ingredients is about layering flavors by sautéing some vegetables, simmering others, and using the bean-cooking liquid for body and flavor.
  • This recipe is more of a blueprint for soup than a set of rules, allowing you to make a soup based on what you have on hand and your personal preferences.
  • Omitting the optional pancetta and Parmesan makes this a fully vegan dish.

If all were right in the world, there would be as many recipes for minestrone—the Italian soup of simmered mixed vegetables and beans—as there have been individual pots of it cooked. That's because it's really more of a process than a fixed recipe. It's a hearty, easy, delicious meal that you can make with a couple of pantry staples and whatever fresh vegetables you happen to have on hand.

Overhead of a minestrone soup in a white bowl with a slice of bread off to the side.

Serious Eats / J. Kenji López-Alt

Growing up, my only exposure to minestrone was at the school cafeteria, where it was a starchy, tomatoey soup with kidney beans, macaroni, frozen carrots, green beans, and peas, held in a steam table throughout the day. It was actually a lot better than that description makes it sound, which is a testament to how easy it is to get tasty, filling results with a bare minimum of effort and expense. But if you put in more than the bare minimum—and I'm not even asking you to go all out here; just use a few simple techniques—then you get something that's much, much better.

The written recipe here includes suggestions for a basic minestrone, but feel free to add or subtract vegetables at will.

"Cucina povera," which translates literally to "poor kitchen," is the Italian tradition of frugality. Its dishes are rustic and rural in origin and consist largely of seasonal vegetables, along with perhaps some dried grains, pasta, beans, or small amounts of preserved meats. When it comes to cucina povera, minestrone is about as archetypical as it gets. Indeed, to write down a recipe for it almost defeats the purpose. Historically, buying ingredients just to make minestrone was most likely unheard of—it was really conceived (or, I should say, it evolved) as a catchall soup intended to use whatever was on hand.

In ancient Rome, that was onions, greens, and beans, simmered with grains like a porridge. In 16th-century kitchens, New World tomatoes might have been added, with the boiled grains replaced by dried beans with a side of bread. These days, with refrigeration and global supply networks, our available range of vegetables is vast all year round. But for me, the best way to make minestrone is still to hit the garden, the farmers market, or, okay, even the supermarket, with no preplanned shopping list, instead picking the freshest vegetables that strike my fancy.

Here's my basic technique. Feel free to improvise.

Starting With Dried Beans

Beans are the starchy backbone of most modern minestrones, but picking the right beans can have a big impact on the results. For the best flavor and texture, you'll want to start with dried beans. As Daniel has pointed out, adding aromatics to the cooking liquid is vitally important, as this adds layers of flavor to the beans. In this case, it's doubly important, because that bean-cooking liquid is going to become the brothy base for the entire soup. Without aromatics, you may as well use canned beans.

Of course, if you want to use canned beans, that's not totally out of the question. The key is to make sure you simmer them in the soup long enough for them to absorb some flavor and release some starch. Without the benefit of flavorful bean-cooking liquid, it helps to use chicken or vegetable stock in place of water when simmering the soup (we'll get to that soon).

A Flavor Base to Enrich the Broth

Next, it's time to build on that broth. You can start with homemade or canned chicken or meat stock, but remember, this is cucina povera, which means that we ought to make use of what's right in front of us: the bean-cooking liquid. It's already got an aromatic backbone built right into it, and the starch that the beans released during cooking will translate to a richer, heartier texture down the road. (Most likely, you'll have to supplement it with some water.)

But before we get to the liquid: Most minestrone recipes start with making what the Italians call a soffritto: a sautéed mixture of onions, carrots, and celery. Technically, a soffritto is called a battuto before it's cooked (it's similar to a mirepoix in French cooking), and in a lot of recipes, the battuto is finely chopped. That makes sense when you're making something like a ragù, in which you want the aromatic vegetables to disappear into the sauce. But for a chunky vegetable soup like this, finely mincing the carrots, onions, and celery is a little too fussy, so I go with a size of dice similar to what I'll be using for the other vegetables.

You can use extra-virgin olive oil* to sauté the battuto, or if you happen to have some pancetta, salt pork, fatty ham, or bacon available, you can render that and sauté the vegetables in a mixture of pork fat and olive oil.

*Despite what some people say, cooking with extra-virgin olive oil will lend more flavor to the finished dish than refined oils; just make sure you don't heat it on its own beyond its smoke point, or it can become bitter.

In addition to the basic soffritto, I like to add some chopped fresh rosemary leaves to reinforce the flavor I introduced with the beans—sage, thyme, or any other hearty herb would be fine as well—along with some minced garlic, which I add after the other vegetables have had a chance to soften.

A pile of small pieces of cut tomato on a cutting board with a chef's knife off to the side.

Serious Eats / J. Kenji López-Alt

Tomatoes are optional, but they add color, flavor, and body to the soup. If you happen to have nice, ripe Roma tomatoes (luckily, I had a supply from my garden), and if you don't mind a bit of extra manual labor, then fresh tomatoes that have been peeled, seeded, and diced are the way to go. In the off-season, canned peeled whole tomatoes, chopped or crushed by hand, will work fine.

I add them to the soffritto right after adding the garlic, then cook the mixture until the tomatoes completely break down. You'll know it's ready because, as the vegetables give up their moisture to evaporation, the sound of the pot will transition from a sputtering, simmering sound to a sharper crackle as the vegetables actually start to fry. That's when you'll want to add your bean water, along with some fresh water or stock to top it up.

The final, optional ingredient: If you've got a Parmesan rind hanging out in the fridge (or saved in the freezer), now would be a good time to deploy it. Just drop it right into the soup pot, and let it work its umami magic.

Prepping and Scheduling Your Vegetables

When all that comes to a simmer, you should have a killer broth on your hands. Now to bulk it up with other vegetables. Adding vegetables to minestrone is really just a matter of preparing them so that they cook evenly and fit on a spoon nicely, and knowing how long each one takes to cook.

If you've got a real level head and good knife skills, and can stay cool under pressure, you can mentally arrange your vegetables in order of "most time to cook" to "least time to cook," then prep them on the fly, chopping one set of vegetables as the previous set simmers. I find it less nerve-wracking to prep the vegetables in advance, mixing them into separate bowls in the order in which they'll be added. So I might have my "sauté-at-the-start" bowl, with onions or leeks, carrots, and celery; my "long-simmer" bowl, with potato chunks, cauliflower florets, and parsnips; my "short-simmer" bowl, with zucchini, summer squash, and green beans; and my "not-until-the-end" bowl, with fresh chopped greens.

A four-image collage. The top left image has cut vegetables cooking in a pot and being stirred by a wooden spoon. The top right image shows liquid being poured into the vegetable mixture. The bottom left image shows a bowl of chopped green beans and zucchini being poured into the vegetable mixture. The bottom right image shows leafy greens being added to the top of the vegetable mixture.

Serious Eats / J. Kenji López-Alt

This chart is excerpted from my book, The Food Lab: Better Home Cooking Through Science, and it should give you a basic idea of how and when to add various vegetables.

Soup Vegetable Timetable

Vegetable Preparation Instructions Minimum Cooking Time 
Carrot Peeled and cut into 1/2-inch chunks, sautéed at start until tender 20 minutes 
Cauliflower Florets separated, stems sliced 1/4 inch thick 20 minutes 
Celery Peeled and cut into 1/2-inch chunks, sautéed at start until tender 20 minutes 
Celery root Peeled and cut into 1/2-inch chunks 20 minutes 
Jicama Peeled and cut into 1/2-inch chunks 20 minutes 
Kohlrabi Peeled and cut into 1/2-inch chunks 20 minutes 
Leeks Thinly sliced or diced, sautéed at start until tender 20 minutes 
Onion Thinly sliced or diced, sautéed at start until tender 20 minutes 
Parsnip Peeled and cut into 1/2-inch chunks 20 minutes 
Potato Peeled and cut into 1/2-inch chunks 20 minutes 
Radish Cut into 1/2-inch chunks 20 minutes 
Rutabaga Peeled and cut into 1/2-inch chunks 20 minutes 
Sweet potato Peeled and cut into 1/2-inch chunks 20 minutes 
Asparagus Cut into 1-inch lengths 10 minutes 
Broccoli Florets separated, stems sliced 1/4 inch thick 10 minutes 
Hearty greens (cabbage, kale, collards) Tough stems or cores removed, leaves sliced or roughly chopped 10 minutes 
Green beans Trimmed and cut into 1-inch pieces 10 minutes 
Summer squash Cut into 1/2-inch chunks or disks 10 minutes 
Zucchini Cut into 1/2-inch chunks or disks 10 minutes 
Tender greens (spinach, arugula, watercress, chard) Leaves roughly chopped or torn 5 minutes 
Brussels sprouts Leaves separated 5 minutes 
Frozen peas Added straight from freezer 5 minutes 
Frozen lima beans Added straight from freezer 5 minutes 
Corn kernels Cut off cob and separated into individual kernels 5 minutes 

Pasta and Other Starches to Consider

Pasta is not a required ingredient for minestrone (as if anything is required), but it can be a nice addition and a good way to turn a substantial appetizer into a full meal. I like to stick with short, textured shapes, like ditali, orecchiette, or cavatappi. If you're adding pasta, just make sure not to add it until 10 to 15 minutes before the soup is done simmering. (You can also consider a non-pasta starch, like rice, barley, or farro. If you do, you'll have to add it much earlier so it cooks through, or else cook it separately and stir it in toward the end.)

Storing leftovers that contain pasta can be problematic, too. The pasta gets mushy as it sucks up water, simultaneously robbing the soup of liquid. If you plan on making enough soup to have leftovers, I'd recommend cooking the pasta separately, draining it, cooling it, and storing it in a sealed container, stirring it into the soup just before serving.

Here's one more starchy pasta alternative: bread. Simmering chunks of a rustic loaf will transform it into a dish called ribollita, a Tuscan soup that's the epitome of cucina povera—what's more resourceful than turning leftover minestrone and stale bread into a whole new, deeply satisfying and delicious meal? (And, by the way, you don't even need stale bread; you can read about that in our in-depth look at ribollita here.)

How Long Should It Simmer?

We've got our soup base and our vegetables in a pot. Now, how long do we let it cook?

In Marcella Hazan's Essentials of Classic Italian Cooking, she recommends cooking minestrone for a couple of hours, until the vegetables soften completely and meld together. This produces a deliciously rich, hearty soup, as the starch released by the beans and vegetables thickens up the broth. On the other hand, you lose the vibrancy of fresh produce when you cook it for that long.

Luckily, the only person who decides how long to simmer the soup is with you right now: you. If you're in the mood for something light and fresh, in which individual flavors and textures shine through, simmer it just until the last vegetable you add tenderizes. If you're out for rib-sticking comfort, let it simmer down for a couple of hours. (Note: If you're adding pasta, wait until the last 10 to 15 minutes of cooking to prevent it from going soggy.)

A bowl of minestrone soup in a white bowl with a sliced loaf of bread off to the side.

Serious Eats / J. Kenji López-Alt

If you're feeling really crazy, you can do what I like to do: reserve half of the soup on the side after a brief simmer while you continue to cook the rest. Stir the two together for a soup that's rich and hearty, but still has a layer of fresh vegetable flavor and texture.

I know. Wild, right? We're going to party like it's 1599.

September 2016

Recipe Details

The Best Minestrone Soup

Prep 10 mins
Cook 100 mins
Active 60 mins
Soaking Time 12 hrs
Total 13 hrs 50 mins
Serves 6 servings
Cook Mode (Keep screen awake)

Ingredients

For the Beans (see note):

  • 8 ounces (225 g) dried cannellini, borlotti, or kidney beans

  • Kosher salt

  • 1 medium onion, split in half (about 6 ounces; 175 g)

  • 1 medium carrot (about 3 ounces; 85 g)

  • 2 celery stalks (about 3 ounces; 85 g)

  • 2 medium cloves garlic

  • 1 large sprig rosemary

  • 2 to 3 sprigs parsley

  • 1 bay leaf

For the Soup Base:

  • 4 ounces (115 g) salt pork or pancetta, cut into 1/4-inch dice (optional)

  • 2 tablespoons (30 ml) extra-virgin olive oil, plus more as needed

  • 1 medium onion, finely chopped (about 6 ounces; 175 g)

  • 1 medium carrot, peeled and finely diced (about 3 ounces; 85 g)

  • 2 celery stalks, finely diced (about 3 ounces; 85 g)

  • 1 tablespoon (15 ml) minced fresh rosemary leaves

  • 2 medium cloves garlic, minced (about 2 teaspoons; 12 g)

  • 1 pound (450 g) ripe Roma tomatoespeeled, seeded, and chopped (see note)

  • 1 Parmesan rind (optional; see notes)

To Finish:

  • 1 cup dried small pasta, such as ditali, macaroni, or orecchiette (about 3 1/2 ounces; 100 g)

  • 1 medium zucchini, cut into bite-size pieces (about 4 ounces; 115 g)

  • 1 medium summer squash, cut into bite-size pieces (about 4 ounces; 115 g)

  • 4 ounces green beans, cut into 1/2-inch lengths (about 115 g)

  • 4 ounces spinach, roughly chopped (about 4 cups loosely packed leaves; 115 g)

  • Chopped fresh herbs, such as basil, parsley, or rosemary, for serving

  • Freshly ground black pepper

Directions

  1. For the Beans: In a medium bowl, cover beans with cold water by several inches and stir in 1 tablespoon salt. Let beans soak at least 12 hours and up to a day. Drain and rinse.

  2. Combine beans, onion halves, carrot, celery, garlic cloves, rosemary, parsley, and bay leaf in a large pot and cover with water by several inches. Add a pinch of salt. Bring to a boil, reduce to a simmer, and cook, topping up with water as necessary, until beans are fully tender, about 45 minutes. Using tongs, discard vegetables and aromatics. Drain beans, reserving cooking liquid. Transfer bean-cooking liquid to a 2-quart measuring cup and add enough cold water to equal 2 full quarts (8 cups; 2L).

    Beans, onion halves, carrot, celery, garlic cloves, rosemary, parsley, and bay leaf simmering in a liquid in a Dutch oven.

    Serious Eats / J. Kenji López-Alt

  3. For the Soup Base: Heat pancetta (if using) and olive oil in a large Dutch oven or stockpot over medium-high heat. Cook, stirring, until pancetta has rendered fat and softened, but has not yet browned. (If omitting pancetta, heat oil just until shimmering.) Add onion, carrot, celery, and minced rosemary. Season with a big pinch of salt and cook, stirring, until vegetables are softened but not browned, 10 to 15 minutes, adding more oil if pot appears dry or if vegetables are starting to stick to the bottom.

    A composite image with chopped onions, carrots, and celery being stirred in a Dutch oven on the left side and on the right side you have onions, carrots, celery, tomatoes, and minced rosemary being stirred in the Dutch oven.

    Serious Eats / J. Kenji López-Alt

  4. Add garlic and cook, stirring, until fragrant, about 30 seconds. Add tomatoes and cook, stirring, until most of their moisture has evaporated and the mixture starts to fry. (The sound should change from a sputtering simmering sound to a sharper crackle as vegetables start to fry.)

  5. Add reserved bean-cooking liquid, beans, and Parmesan rind, if using. Let broth simmer for at least 10 minutes.

  6. Add pasta (unless you are planning on simmering for a long time; see step 7), zucchini, squash, and green beans and simmer until pasta and vegetables are tender, about 10 minutes. Add spinach and cook, stirring occasionally, until spinach is wilted, about 5 minutes. Discard Parmesan rind, if used.

  7. Serve soup immediately as is, or continue simmering for up to 2 1/2 hours for a heartier texture and flavor (if simmering for a long time, add the pasta 10 to 15 minutes before serving). Alternatively, reserve half of soup on the side, continue to simmer the other half in the pot for up to 2 1/2 hours, and stir reserved soup back in for a soup that is hearty, but still has plenty of bright vegetable flavor and texture. Stir in chopped herbs and season to taste with salt and pepper before serving.

Special Equipment

Measuring cup, Dutch oven or stockpot

Notes

Canned beans can be used in place of fresh. To use canned beans, in step 5, drain and rinse 2 cups of canned beans and add them to the soup, along with 2 quarts of homemade vegetable stock, or store-bought or homemade low-sodium chicken stock. Increase simmering time to 30 minutes before proceeding to step 6.

Use fresh tomatoes only if ripe and in season. Otherwise, tomatoes may be omitted or replaced with one (14-ounce) can of whole peeled tomatoes, crushed by hand or chopped with a knife. A Parmesan rind can be added to the soup while simmering for deeper flavor.

Nutrition Facts (per serving)
428Calories
21gFat
48gCarbs
15gProtein
×
Nutrition Facts
Servings: 6
Amount per serving
Calories428
% Daily Value*
Total Fat 21g27%
Saturated Fat 6g32%
Cholesterol 16mg5%
Sodium 981mg43%
Total Carbohydrate 48g17%
Dietary Fiber 10g36%
Total Sugars 7g
Protein 15g
Vitamin C 22mg110%
Calcium 172mg13%
Iron 6mg34%
Potassium 1253mg27%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)

More Serious Eats Recipes