Table of Contents
Cozy Italian Meatball Soup with Kale and Lemon – A Bright Twist on Italian Wedding Soup
There are certain soups that feel like a warm hug in a bowl, and this Italian meatball soup recipe is exactly that. Every time I make it, I’m transported back to my mother’s kitchen in Morocco, where she’d simmer pots of fragrant, slow-cooked soups for hours on end. But this isn’t my mother’s soup — it’s my own New York take on Italian wedding soup with kale, brightened with a generous squeeze of lemon. My husband calls it “cozy Italian soup recipe perfection,” and honestly, I agree. The lemon is the twist that sets this kale meatball soup apart. It cuts through the rich broth and tender meatballs in the most beautiful way, making every spoonful feel fresh and comforting at the same time.
Picture this: a rich, savory broth gently simmering with juicy, herb-flecked meatballs, velvety cannellini beans, and ribbons of emerald kale that soften just enough to melt in your mouth. The aroma of garlic and oregano fills your kitchen as the soup bubbles away on the stove. Then, right at the end, you stir in lemon zest and fresh lemon juice — that bright, citrusy pop — and suddenly everything sings. The Parmesan melts into the broth, adding a nutty, salty depth, while the kale brings an earthy, slightly sweet note. It’s a bowl of pure comfort with a refreshing finish that keeps you coming back for more. I learned that balance of rich and bright during my pastry training in Paris, where precision and contrast are everything.
As a professional cook trained in Paris and now cooking in my tiny NYC apartment kitchen, I’ve tested dozens of Italian meatball soup recipes over the years. What makes this one special is the technique: browning the meatballs first for deep flavor, then simmering them gently so they stay tender and juicy. I’m going to share my pro tip for keeping meatballs intact — trust me, it’s a game-changer — plus the one mistake I see home cooks make that turns kale into a mushy mess. This cozy Italian soup recipe is foolproof once you know these two things. Let me walk you through every step, from mixing the meatballs to that perfect, bright lemon finish. 🍋
Why This Italian Meatball Soup Recipe with Lemon Is the Best
The Flavor Secret: Most Italian meatball soup recipes stop at oregano and Parmesan, but the lemon zest and juice add a layer of brightness that lifts the whole bowl. It’s a technique I borrowed from French cooking — always finish a rich dish with something acidic to balance the fat. In my mother’s Moroccan kitchen, preserved lemons played a similar role in her tagines. Here, fresh lemon does the job, cutting through the richness of the beef-pork meatballs and bringing the broth into perfect harmony. This Italian meatball soup recipe is proof that one small ingredient can transform an entire dish from delicious to unforgettable.
Perfected Texture: Texture is where so many soups fail. Mushy kale, dry meatballs, bland beans — I’ve seen it all. Here’s the secret: brown the meatballs well, then simmer them just long enough to cook through without breaking down. Each element keeps its own identity. The meatballs stay tender and juicy, the kale keeps a slight bite (never a limp mess!), and the cannellini beans hold their shape while soaking up the broth. This is the result of careful layering and timing — a principle I carry from my Paris culinary training into everything I make.
Foolproof & Fast: This cozy Italian soup recipe comes together in just 55 minutes, and most of that is hands-off simmering. If you’re new to soup-making, don’t be intimidated. I’ll walk you through everything: how to form meatballs that don’t fall apart, how long to simmer the kale, and how to adjust the lemon to your taste. Even on a busy weeknight, you can get this Italian wedding soup with kale on the table without breaking a sweat. Batch-cook it on Sunday and you’ll have lunches for the week. It’s forgiving, flexible, and always delicious.
Italian Meatball Soup Recipe Ingredients
When I shop for this kale meatball soup in New York, I hit up the Union Square Greenmarket for the freshest lacinato kale and organic lemons, then swing by my local Italian deli in Little Italy for a wedge of real Parmigiano-Reggiano. The ingredients are simple, but each one earns its place in the pot. Use the best you can find, and the soup will thank you.
Ingredients List
- 1 lb ground beef (80/20)
- 1/2 lb ground pork
- 1/2 cup breadcrumbs
- 1/4 cup grated Parmesan cheese
- 1 large egg
- 2 cloves garlic, minced
- 1 tsp dried oregano
- 1/2 tsp salt
- 1/4 tsp black pepper
- 2 tbsp olive oil
- 1 medium onion, chopped
- 2 carrots, sliced
- 2 celery stalks, sliced
- 4 cups low-sodium chicken broth
- 1 can (14.5 oz) diced tomatoes
- 1 can (15 oz) cannellini beans, drained and rinsed
- 4 cups chopped kale (about 1 bunch)
- 1 lemon, juiced and zested
- Fresh parsley, for garnish
- Grated Parmesan, for serving
Ingredient Spotlight
Kale: Kale is the star green here. I prefer lacinato (also called dinosaur or Tuscan kale) because it’s flatter, more tender, and holds up beautifully in soup. Curly kale works too but needs a bit more simmering. Look for leaves that are deep green, crisp, and free of yellow spots. When prepping, strip the leaves from the woody stems and chop them into 1-inch ribbons — the stems are too tough for the soup, but you can save them for stock.
Lemon: The lemon is the quiet hero of this Italian meatball soup recipe. You’ll need both the zest and the juice — the zest gives you the aromatic essential oils, while the juice adds the tart punch. Pick lemons that feel heavy for their size (that means juicy) and have smooth, thin skin. Roll them on the counter before zesting to release the oils. Meyer lemons make a slightly sweeter, less acidic soup — lovely if you can find them at the market.
Cannellini Beans: Cannellini beans add creaminess without a drop of heavy cream. They soak up all those savory flavors while adding a buttery texture and a boost of fiber and protein. Buy low-sodium or no-salt-added canned beans and always rinse them well to remove excess sodium. In the world of Italian wedding soup with kale, beans are optional, but I love the heartiness they bring to the bowl.
The Meat Blend: The beef and pork blend is what gives these meatballs their big, comforting flavor. Pork adds fat and tenderness, while beef gives that classic meaty depth. A ratio of 2 parts beef to 1 part pork is my sweet spot. In a pinch, you can use all beef (80/20 lean-to-fat ratio), but the pork really is the secret to ultra-juicy texture. For a lighter kale meatball soup, ground turkey works beautifully — I’ll cover that in the variations section below.
| Original Ingredient | Best Substitution | Flavor / Texture Impact |
|---|---|---|
| Ground beef + ground pork | Ground turkey + Italian turkey sausage (casings removed) | Leaner and lighter; sausage adds savory depth and a bit of heat |
| Lacinato kale | Swiss chard or baby spinach | Chard: similar texture; spinach: more delicate, add in last 2 minutes |
| Fresh lemon juice + zest | White wine vinegar + orange zest | More tangy, slightly perfumed; start with less and taste as you go |
| Cannellini beans | Great Northern or navy beans | Similar creamy texture, slightly smaller size |
| Grated Parmesan | Pecorino Romano or Grana Padano | Pecorino is saltier and sharper; Grana Padano is milder and sweeter |
How to Make This Cozy Italian Soup Recipe – Step-by-Step
Making this Italian meatball soup recipe is easier than you think. Follow these steps, and you’ll have a pot of soup that tastes like it simmered all day — trust me, even on a Tuesday night.
Step 1: Mix the Meatball Mixture
In a large bowl, combine 1 lb ground beef, 1/2 lb ground pork, 1/2 cup breadcrumbs, 1/4 cup grated Parmesan, 1 large egg, 2 cloves minced garlic, 1 tsp dried oregano, 1/2 tsp salt, and 1/4 tsp black pepper. Mix with your hands until everything is just combined. Be careful not to overmix — the more you work the mixture, the tougher the meatballs become.
💡 mia’s Pro Tip: Wet your hands with cold water before mixing. It keeps the meat from sticking and prevents overworking the mixture. I learned this from my butcher in Paris — he always said, “Handle the meat like a lady, not like laundry.”
Step 2: Form and Brown the Meatballs
Form the mixture into small meatballs, about 1 inch in diameter — a small cookie scoop works wonders for uniformity. Heat 2 tbsp olive oil in a large pot or Dutch oven over medium heat, then add the meatballs in batches, making sure not to overcrowd the pot. Brown them on all sides, about 2–3 minutes per side. Remove and set aside on a plate. They won’t be cooked through yet — that’s perfectly fine.
⚠️ Common Mistake to Avoid: Overcrowding the pot is the classic error. If you pack the meatballs in too tightly, they’ll steam instead of brown, and you’ll lose all that deep, caramelized flavor that makes the soup incredible. Brown in two or three batches, and thank me later.
Step 3: Sauté the Aromatics
In the same pot, add the chopped onion, sliced carrots, and sliced celery. Sauté over medium heat for about 5 minutes, stirring occasionally, until the vegetables soften and the onion turns translucent. The browned bits on the bottom of the pot are packed with flavor — don’t let them burn!
💡 mia’s Pro Tip: Scrape the bottom of the pot with a wooden spoon as the vegetables cook. That layer of browned meat and caramelized veg is liquid gold — it infuses the entire broth with deep, savory richness. This is the French technique called deglazing, and it’s where the flavor lives.
Step 4: Build the Broth Base
Add 4 cups of low-sodium chicken broth and one 14.5-oz can of diced tomatoes with their juices. Use your spoon to scrape up any browned bits from the bottom of the pot — this is called deglazing, and it’s a cornerstone of French cooking. Bring everything to a gentle simmer.
⚠️ Common Mistake to Avoid: Using high-sodium broth is easy to do but hard to fix. Always choose low-sodium so you control the salt. You can add more salt at the end if needed, but you can’t take it out! High-sodium broth plus Parmesan plus canned tomatoes can turn the soup salty in a second.
Step 5: Simmer the Meatballs
Gently return the browned meatballs to the pot. Bring the soup back to a simmer, then reduce the heat to medium-low, cover partially, and let it simmer for 15 minutes. This is where the meatballs finish cooking and flavor the broth beautifully.
💡 mia’s Pro Tip: Keep the heat low and steady — a gentle simmer, not a rolling boil, keeps the meatballs tender and prevents them from breaking apart. Tiny bubbles should barely break the surface. If you see the soup boiling hard, dial it back immediately.
Step 6: Add Beans and Kale
Stir in 1 can of drained and rinsed cannellini beans and 4 cups of chopped kale. Let the soup cook for another 10 minutes, just until the kale is tender but still has a hint of vitality and plenty of beautiful color.
⚠️ Common Mistake to Avoid: Don’t add the kale at the start of cooking! If it simmers for 30+ minutes, it’ll turn slimy and dull gray-green. Ten minutes is the sweet spot for tender-but-alive kale. This is the #1 mistake I see in Italian wedding soup recipes.
Step 7: Finish with Lemon and Serve
Remove the pot from the heat. Stir in the juice and zest of 1 lemon. Taste and adjust the seasoning — you may want a pinch more salt or another squeeze of lemon. Serve hot in big bowls, garnished with fresh parsley and a shower of extra Parmesan.
💡 mia’s Pro Tip: Always add the lemon after the soup is off the heat. If you boil lemon juice, it loses its bright, fresh character and can turn slightly bitter. Off-heat finishing is a rule I live by — from Paris pastry kitchens to my NYC stove. It’s the one step you should never rush.
| Step | Action | Duration | Key Visual Cue |
|---|---|---|---|
| 1 | Mix meatball ingredients | 5 minutes | Just combined, no floury streaks |
| 2 | Form + brown meatballs | 10 minutes | Golden-brown crust on all sides |
| 3 | Sauté onion, carrots, celery | 5 minutes | Onions translucent, vegetables softened |
| 4 | Add broth + tomatoes, deglaze | 3 minutes | Broth almost simmering, brown bits dissolved |
| 5 | Simmer meatballs | 15 minutes | Meatballs cooked through (165°F internal) |
| 6 | Add beans + kale | 10 minutes | Kale wilted but still deep green |
| 7 | Add lemon, garnish, serve | 2 minutes | Broth bright, fresh lemony aroma |
Serving & Presentation
For serving, ladle this cozy Italian soup recipe into big, warm bowls — I have a collection of vintage ceramic bowls from Greenpoint flea markets that make everything feel cozier. Spoon a few meatballs, some beans, and a generous amount of broth into each bowl. The kale should twist through the soup like emerald ribbons. Finish with a shower of grated Parmesan and a pinch of fresh parsley on top. If you’re feeling fancy, a drizzle of good extra-virgin olive oil and a few cracks of black pepper take it over the top.
In my house, this Italian meatball soup recipe pairs beautifully with crusty bread. I love a warm baguette from Amy’s Bread in Chelsea Market, torn into pieces for dipping. Or, if you want to be extra indulgent, serve it alongside a grilled mozzarella sandwich — my kids ask for it every time. This soup is a meal in itself, but the right sides make it an event. And if you grew up eating Italian wedding soup with kale like so many of my friends in New York, this version will feel nostalgic and fresh all at once. The lemon is always the conversation starter at the table — everyone asks about it!
| Pairing Type | Suggestions | Why It Works |
|---|---|---|
| Side Dish | Crusty baguette, garlic bread, grilled mozzarella sandwich | Soaking up the broth is half the fun |
| Sauce / Dip | Pesto drizzle, chili crisp, warm focaccia with olive oil | Adds herbaceous or spicy contrast to the bright lemon broth |
| Beverage | Chianti, Pinot Grigio, sparkling lemon water | Light acidity mirrors and complements the lemon finish |
| Garnish | Fresh parsley, Parmesan clouds, lemon wedges on the side | Adds freshness, color, and an extra squeeze of brightness |
Make-Ahead, Storage & Reheating
Life gets busy in NYC, and I’ve learned to be strategic in the kitchen. This Italian meatball soup recipe is a meal-prep dream. Make a batch on Sunday, and you’ll be eating well all week long. The flavors actually meld and deepen overnight — honestly, it might be even better the next day. Here’s everything you need to know about storing and reheating this kale meatball soup.
| Method | Container | Duration | Reheating Tip |
|---|---|---|---|
| Refrigerator | Airtight container | Up to 4 days | Reheat gently on stovetop; add a splash of broth if too thick |
| Freezer | Freezer-safe container (without kale) | Up to 3 months | Thaw overnight in fridge; add fresh kale when reheating |
| Make-Ahead | Meatballs + broth, refrigerate separately | Up to 2 days in advance | Combine and finish with lemon right before serving |
A few things I’ve learned the hard way: soup freezes well, but kale doesn’t love the freezer — it can get a bit mushy on thawing. So if you’re making a big batch of this cozy Italian soup recipe to freeze, leave the kale out. Add it fresh when you reheat. Same goes for the lemon — always add it right before serving for maximum freshness.
I love making this Italian meatball soup in my Dutch oven — my Le Creuset has seen hundreds of batches — but you can use any heavy-bottomed pot. Portion the soup into individual glass containers for work lunches, and pack a small wedge of lemon so you can re-brighten it at the office. Trust me, a squeeze of lemon after reheating is the difference between “good” and “wow.” It’s a little trick I picked up in Paris and use every single week.
Variations & Easy Swaps: More Kale Meatball Soup Ideas
This Italian meatball soup recipe is wonderfully flexible. Whether you need a lighter version, a gluten-free option, or something with a little more fire, these variations have you covered. I’ve tested every single one in my NYC kitchen, so you know they work.
| Variation | Key Change | Best For | Difficulty Impact |
|---|---|---|---|
| Lighter Turkey Meatball Soup | Ground turkey instead of beef | Everyday weeknight meal | Easy |
| Gluten-Free + Dairy-Free | GF breadcrumbs + dairy-free cheese | Dietary restrictions | Easy |
| Spicy Pepperoncino Twist | Crushed red pepper + chili crisp garnish | Heat lovers | Easy |
Variation 1: Lighter Turkey Meatball Soup
For a leaner kale meatball soup, swap the ground beef for ground turkey — I recommend 93/7 lean-to-fat ratio so the meatballs stay moist. I tested this version on a busy weeknight when my gym buddy was coming over, and it was a hit. Pair the turkey with a bit more Parmesan and a touch of olive oil so the meatballs don’t dry out. Italian turkey sausage (mild or spicy) also works beautifully: just remove the casings and mix the sausage into the meatball mixture. This variation takes this cozy Italian soup recipe in a completely different — but equally delicious — direction.
Variation 2: Gluten-Free & Dairy-Free
To make this Italian meatball soup recipe gluten-free and dairy-free, swap the breadcrumbs for an equal amount of gluten-free panko or almond flour, and use a dairy-free Parmesan-style alternative — I love the one from Violife. These substitutions change the texture slightly: almond flour makes the meatballs a touch denser, so don’t overmix. The rest of the soup is naturally gluten-free, so this is an easy adaptation. This is my go-to when serving friends with dietary restrictions, and no one ever feels like they’re missing out. It’s still every bit as cozy and satisfying.
Variation 3: Spicy Pepperoncino Twist
As much as I love the classic cozy Italian soup recipe, sometimes I crave a little heat. I’m from Morocco — spice runs in my veins — but I also love the Sicilian tradition of pepperoncino. Add 1/2 teaspoon crushed red pepper flakes along with the oregano, or stir a spoonful of chili crisp into each bowl before serving. The heat pairs beautifully with the lemon, creating that sweet-savory-spicy-bright balance that hits all the right notes. If you’re at a NYC farmers market, look for Calabrian chili paste — it adds a lovely, fruity warmth that you just can’t get from regular red pepper flakes.
Frequently Asked Questions About This Italian Meatball Soup Recipe
How do you keep Italian meatballs from falling apart in the soup?
This is the most common question I get from readers, and the secret is threefold. First, include a binder: the breadcrumbs and egg in this Italian meatball soup recipe hold the meat together beautifully. Second, don’t overmix the meat mixture — overmixing breaks down the proteins and makes the meatballs fragile. Finally, brown the meatballs on all sides in a little olive oil before they hit the soup. The crust that forms helps them hold their shape while they finish cooking in the broth, so they stay intact and tender throughout the entire simmer. Follow these three rules and your meatballs will never fall apart.
Can I use ground turkey or chicken instead of beef for this Italian meatball soup?
Absolutely! Ground turkey or chicken works wonderfully in this kale meatball soup. My recommendation is to use ground turkey with at least 93% lean content, or even 85/15, because extra-lean poultry tends to dry out quickly. To keep the meatballs moist, add an extra tablespoon of olive oil to the mixture and consider using Italian turkey sausage for extra flavor and fat. Pork is traditionally used for juiciness, but with a few tweaks — like slightly larger breadcrumbs and a touch of milk — you’ll get tender, flavorful meatballs every single time.
How long should you simmer the meatballs and kale in the soup to avoid overcooking the kale?
Timing is everything in this cozy Italian soup recipe. You’ll want to simmer the meatballs for about 15 minutes once they’re in the broth, and then add the kale for the final 10 minutes of cooking. That’s the sweet spot: the meatballs are fully cooked and tender, and the kale has just wilted, keeping its deep green color and a slight bite. If you let the kale simmer much longer than 12 minutes, it becomes soft, slippery, and loses its visual appeal. The lemon, of course, goes in after the soup comes off the heat, so its freshness is fully intact. Trust the timing.
What can I substitute for lemon juice or zest if I don’t have fresh lemons on hand?
No fresh lemons? No problem. White wine vinegar or apple cider vinegar is your best pantry substitute for the lemon juice — use about 1 tablespoon at a time and taste as you go, since vinegar can be harsher than fresh citrus. For the zest, orange zest offers a similar aromatic brightness, though it’s slightly sweeter. Another option is to use a splash of white wine or vermouth in the broth for that acidic lift. Start with less than you think you need and adjust at the end. That’s exactly how I finish soups in my own kitchen, and it works every time.
Can I make this Italian meatball soup ahead of time?
Yes! In fact, this cozy Italian soup recipe tastes even better the next day — the flavors have time to meld and deepen in the refrigerator. Prepare the soup through step 6, where you add the beans and kale, then cool it completely and refrigerate in an airtight container for up to 3-4 days. Wait to add the lemon until just before serving. When you’re ready to eat, reheat gently on the stovetop and stir in the lemon juice and zest. If the soup has thickened overnight, add a splash of broth to loosen it back to that perfect consistency.
Can I freeze Italian wedding soup with kale and meatballs?
You can absolutely freeze this soup, but here’s the key: freeze it without the kale and without the lemon. The kale loses its texture and turns mushy when frozen and reheated, and the lemon flavor fades significantly. So after simmering the meatballs in the broth, let the soup cool completely, then portion it into freezer-safe containers or zip-top bags without the kale. When you’re ready to serve, thaw in the refrigerator overnight, reheat on the stove, and stir in fresh kale and lemon at the end. This way you get all that fresh, vibrant flavor with zero compromise. It’ll keep for up to 3 months.
What can I use instead of cannellini beans in this soup?
If you don’t have cannellini beans, don’t worry! Great Northern beans, navy beans, or even chickpeas will work beautifully in this Italian meatball soup recipe. Great Northern beans are the closest match — they’re slightly smaller with the same creamy interior and mild flavor. Navy beans are even smaller and cook up very creamy. And chickpeas add a slightly nutty, more substantial bite. Just make sure to drain and rinse any canned beans to remove excess sodium. The beans add protein and make the soup extra hearty, so I wouldn’t skip them entirely — but any of these swaps will absolutely work.
Is this Italian meatball soup healthy?
I’d call this a nutritious, balanced meal. Each serving has about 420 calories with 28 grams of protein, thanks to the meatballs and cannellini beans. The kale packs in vitamins A, C, and K along with antioxidants and plenty of fiber. The lemon adds vitamin C with zero fat. You can easily lighten it up even further: use ground turkey instead of beef and pork, choose lean ground beef, and always use low-sodium broth to control the salt. Pair it with a simple green salad for a light, satisfying meal that happens to feel totally indulgent. Healthy and cozy can absolutely go hand in hand.
Can I use fresh herbs instead of dried oregano?
Yes — in fact, this recipe is designed with dried oregano to keep things simple and accessible. We use 1 teaspoon of dried oregano in the meatballs. If you have fresh oregano on hand, you’ll need about three times more, so 1 tablespoon finely chopped, and add half to the meatballs and half to the broth near the end of cooking. The flavor of dried oregano is more concentrated, so the recipe already works perfectly as written. Fresh oregano has a delicate, slightly peppery aroma that’s lovely in the final 10 minutes of simmering. Both are delicious, so use whichever you have on hand.
What kind of kale is best for soup?
I recommend lacinato kale, sometimes called dinosaur or Tuscan kale, for this kale meatball soup. Its leaves are flatter, thinner, and more tender than curly kale, and it holds its shape beautifully in broth. Curly kale works in a pinch, but give it an extra 2-3 minutes of simmering and expect a more rustic texture. Whatever type of kale you choose, always strip the leaves from the tough central stems and chop them into bite-sized ribbons. If you can find baby kale, you can toss it in whole — it’s lovely and requires almost no cooking. The right kale makes this cozy Italian soup recipe truly shine.
Share Your Version!
If you make this cozy Italian meatball soup recipe, I’d love to hear about it! Leave a star rating below, share a comment with your twist — especially if you try any of the variations. And don’t forget to tag me in your photos on Instagram or Pinterest @exorecipes. There’s nothing I love more than seeing this kale meatball soup on your table, made your own way.
One question for you: are you a lemon-lover like me, or would you rather keep your Italian wedding soup with kale purely savory? I’m always curious which version you choose. And whatever you do, don’t forget the Parmesan — it really is the cherry on top of this cozy Italian soup recipe.
From my NYC kitchen to yours — I hope this recipe brings as much warmth to your table as it does to mine. — mia 🧡
Love This Recipe? Save It to Pinterest!
If you enjoyed this Cozy Italian Meatball Soup with Kale and Lemon recipe, don’t let it get lost in your browser tabs! 😄 Pin it now so you can find it again anytime — and explore hundreds more tried-and-tested recipes waiting for you on my Pinterest boards.
👉 Follow mia on Pinterest @exorecipe
📌 Pin this recipe · 🔁 Re-pin your favorites · 💬 Tag me when you make it — I love seeing your creations!
💬 What’s your favorite cozy soup for a cold night? Drop a comment below — I read every single one! And if you loved this recipe, don’t forget to pin it for later and share your photos with me @exorecipes. Your kitchen adventures make my day! 🍲✨
Cozy Italian Meatball Soup with Kale and Lemon
- Prep Time: 20 minutes
- Cook Time: 35 minutes
- Total Time: 55 minutes
- Yield: 6 servings 1x
- Method: Soup
- Cuisine: Italian
Description
A hearty and comforting Italian-style meatball soup with tender kale and a bright squeeze of lemon, perfect for cozy nights.
Ingredients
- 1 lb ground beef
- 1/2 lb ground pork
- 1/2 cup breadcrumbs
- 1/4 cup grated Parmesan cheese
- 1 large egg
- 2 cloves garlic, minced
- 1 tsp dried oregano
- 1/2 tsp salt
- 1/4 tsp black pepper
- 2 tbsp olive oil
- 1 medium onion, chopped
- 2 carrots, sliced
- 2 celery stalks, sliced
- 4 cups low-sodium chicken broth
- 1 can (14.5 oz) diced tomatoes
- 1 can (15 oz) cannellini beans, drained and rinsed
- 4 cups chopped kale
- 1 lemon, juiced and zested
- Fresh parsley, for garnish
- Grated Parmesan, for serving
Instructions
- In a large bowl, combine ground beef, ground pork, breadcrumbs, Parmesan, egg, minced garlic, oregano, salt, and pepper. Mix until well combined.
- Form mixture into small meatballs, about 1 inch in diameter.
- In a large pot or Dutch oven, heat olive oil over medium heat. Add meatballs in batches and brown on all sides. Remove and set aside.
- In the same pot, add onion, carrots, and celery. Sauté until softened, about 5 minutes.
- Add chicken broth and diced tomatoes, scraping up any browned bits. Bring to a simmer.
- Return meatballs to the pot. Simmer for 15 minutes.
- Add cannellini beans and chopped kale. Cook for another 10 minutes, until kale is tender.
- Stir in lemon juice and zest. Taste and adjust seasoning.
- Serve hot, garnished with fresh parsley and extra Parmesan if desired.
Notes
For a lighter version, use ground turkey instead of beef and pork. The soup keeps well in the refrigerator for up to 4 days.
Nutrition
- Calories: 420 kcal
- Sugar: 6 g
- Fat: 24 g
- Carbohydrates: 28 g
- Protein: 28 g

k">
Tried This Recipe? Leave a Comment!
Did you make this recipe? I’d love to hear how it turned out! Please leave a comment and a rating below. Your feedback helps other home cooks and supports cheerychop.com!
For more delicious inspiration, follow me on Pinterest!
