We are always looking for ways to bring a little brightness to the table when the weather starts to shift and this dish hits every single mark. These chicken meatballs are incredibly tender thanks to a bit of ricotta, and they sit perfectly in beautiful, lemon-infused broth that feels like a warm hug.

The secret here is all in the “brodo” technique, simmering aromatics like fennel seed and lemon peel separately to keep the final soup light and refined. Topping it all off with a fresh gremolata adds a punch of herbiness that wakes up all the flavours. I can't wait for you to try this in your own kitchen; it's an elegant choice for a weekend dinner, and if you prep the meatballs and broth a day ahead, it comes together beautifully for a refined, stress-free meal.
Jump to:
Why We Love This Recipe
- Texture-First Meatballs: The addition of well-drained ricotta and fresh breadcrumbs ensures the meatballs stay light and airy rather than dense.
- Translucent, Bright Brodo: By straining the aromatics and maintaining a gentle simmer, you get a beautiful, light broth that highlights the spring vegetables.
- Vibrant Finishes: The lemon-herb gremolata provides a raw, aromatic contrast to the simmered flavours of the soup.
Ingredients
Chicken Ricotta Meatballs

- Ground chicken
- Ricotta cheese
- Parmigiano Reggiano
- Fresh breadcrumbs
- Egg
- Onion
- Fresh parsley
- Chives
- Lemon zest
- Garlic clove
- Kosher salt
- Black pepper
- Olive oil
➡Making Fresh Breadcrumbs. For the lightest, most tender meatballs, skip the store-bought dried crumbs. Simply tear two or three slices of high-quality white bread or sourdough (crusts removed) into pieces and pulse them in a food processor until you have soft, pea-sized crumbs. You want them to feel like clouds, not sand!
Lemon-Herb Gremolata

- Fresh parsley
- Chives
- Lemon zest
- Garlic
- Salt
- Olive oil
Lemon Orzo Brodo
- Chicken
- Shallot
- Lemon peel
- Fennel seed
- Dry white wine
- Dry orzo
- Salt & pepper

Spring Vegetables
- Asparagus
- Peas
- Fresh spinach
For Finishing
- Lemon juice
- Olive oil
- Parmigiano Reggiano
- Chili pepper flakes
See the recipe card below for quantities.
Instructions
Build the Meatball Mixture
In a large mixing bowl, combine the ground chicken, drained ricotta, Parmigiano, fresh breadcrumbs, whisked egg, grated onion, remaining 1 tablespoon parsley, remaining 1 tablespoon chives, 2 teaspoon lemon zest, 1 grated garlic clove, salt, and pepper. Mix gently by hand until just combined. The texture should be slightly firm and lightly tacky, but not wet.
➡Don’t Overwork the Meat: Handle the mixture as little as possible. Over-mixing leads to a dense, tough texture. You want to gently fold the ingredients together until they just barely hold.

Rest, Texture Check & Roll
Let the mixture sit for 10 minutes to allow the breadcrumbs to hydrate. Roll one test meatball. If it is too wet, add 1 tablespoon of breadcrumbs and rest 5 more minutes. If it feels too firm, gently fold in 1 tablespoon of ricotta. Divide the mixture into 8 large meatballs (about 2 ½ to 3 inches) and roll gently without over-compressing.
➡The “Wet Hands” Technique: Ground chicken is notoriously sticky. To roll perfectly smooth meatballs without the mixture sticking to your skin, lightly coat your hands or gloves with water or a tiny bit of olive oil before forming each one.

Sear the Meatballs
Heat a large skillet over medium-high heat (approximately 375°F). Lightly brush the meatballs with olive oil, and reshape them if needed. Add 2 tablespoon olive oil to the pan and sear the meatballs on 2 or 3 sides for about 5 to 6 minutes total. They should be golden brown but not cooked through. Work in batches to avoid overcrowding.
➡Avoid Over-Searing: When working with lean meat, the goal of the sear is just to develop a golden crust and set the shape. Don’t worry about cooking them through in the pan; let the gentle simmer of the brodo do the heavy lifting to keep the protein from getting tough.

Build the Brodo
In a 3.5 qt saute pan, combine the chicken stock, shallot halves, lemon peel, crushed fennel seed, and white wine. Bring to a boil over high heat, then reduce to a low simmer for 10 minutes. Strain the liquid into a clean pot and discard the solids to ensure a clear broth.

Simmer Orzo and Meatballs
Bring the strained broth back to a gentle simmer over medium-low heat. Add the orzo and cook for 4 minutes. Carefully add the seared meatballs to the broth. Simmer gently for 8 to 10 minutes until the internal temperature of the meatballs reaches 165°F (74°C). Keep the heat low to maintain broth clarity.

Add Vegetables and Finish
Stir in the asparagus and peas and cook for 2 minutes. Add the chopped spinach and stir until just wilted. Remove from the heat. Stir in 1 to 2 tablespoon of lemon juice and 2 tablespoon of olive oil. Taste and adjust salt and pepper.

Prepare the Gremolata
In a small bowl, combine 2 tablespoon of the chopped parsley, 1 tablespoon of the chives, 1 teaspoon of the lemon zest, and ½ of a grated garlic clove. Add a pinch of salt and 1 teaspoon of olive oil. Mix well and set aside to let the flavours meld for at least 5 minutes.

Plating & Serving
Ladle the orzo and vegetables into wide (or shallow) bowls first, then place two meatballs on top so they sit slightly above the broth. Sprinkle the prepared Gremolata over the meatballs only. Finish with a grating of Parmigiano Reggiano, a final drizzle of olive oil and red pepper flakes. Serve with a crusty bread to soak up that bright, lemony broth.

Tips for Success
- The Ricotta Insurance: Since lean chicken lacks fat, the well-drained ricotta acts as a moisture barrier to keep the meatballs tender.
- Avoid Over-Searing: Get a quick golden crust to set the shape, but let the gentle simmer of the brodo finish the cooking to keep the protein juicy.
- Mandatory Rest: Don’t skip the 10-minute rest after mixing. This allows the breadcrumbs to hydrate, locking juices inside.
- Vegetable Swaps: If asparagus isn’t in season, sliced zucchini or snap peas work beautifully here.
Storage & Freezing
- Refrigerator: Store cooked meatballs in broth for up to 3 days. Store pasta separately if possible so it doesn’t absorb all the liquid.
- Freezing Raw: Flash-freeze meatballs on a tray for 1 hour, then move to a bag for up to 3 months. Thaw in the fridge before searing.
- Freezing Cooked: Freeze in an airtight container with a splash of broth to prevent the lean meat from drying out.
- Reheating: Warm gently on the stovetop over medium-low heat to preserve the tender texture.
FAQs
A: The key is the binder and a resting period. Using fresh breadcrumbs and an egg creates a structural bond, but letting the mixture rest for 10 minutes is critical. This allows the breadcrumbs to fully hydrate, ensuring the meatballs hold their shape during searing and simmering.
A: To keep your broth from becoming cloudy, simmer your aromatics (shallot, lemon peel, and fennel seed) separately in the stock first, then strain them out. Keeping the heat at a gentle simmer rather than a rolling boil prevents the proteins and starches from breaking down too quickly, ensuring your brodo stays light and clear enough to see every vibrant vegetable.
A: Absolutely! Ground chicken thigh will result in a richer meatball. If the mixture feels a bit too soft when rolling, simply add another tablespoon of breadcrumbs and ensure your ricotta is very well drained to maintain the structure.
A: You can absolutely prepare the meatballs a day in advance! Form them and keep them covered in the fridge. I recommend searing them fresh right before adding to the brodo for the best texture. The brodo can also be made and strained a day ahead, which makes the final assembly very fast. If making the whole dish ahead, store the orzo separately so it doesn’t soak up the broth.
Loved this Chicken Ricotta Meatballs Recipe? Try These Next!
- Aromatic Ginger Chicken Noodle Soup with Jammy Quail Eggs
- Air Fryer Chicken Parmesan Meatballs
- Lemony Chicken Piccata with Orzo and Spinach

Equipment Used: To keep this Chicken Ricotta Meatballs with Lemon Orzo Brodo recipe streamlined, we used our Hestan Luxe 11″ Skillet for that initial golden sear and then moved everything into the Hestan Luxe 3.5 qt Saute Pan for the brodo and simmering. The heat conductivity of these pans is second to none, ensuring the meatballs cook evenly at 165°F (74°C) without sticking or breaking apart. It's the ultimate duo for a refined, one-pan meal! Hestan Culinary Ambassador. Opinions in this post are my own.
📖 Recipe

Chicken Ricotta Meatballs with Lemon Orzo Brodo
Ingredients
Chicken Ricotta Meatballs
- 1 ½ lb lean ground chicken 680 g
- ½ cup ricotta cheese very well drained (100 g)
- ½ cup Parmigiano Reggiano finely grated 40 g
- 1 cup fresh breadcrumbs soft, not dry, see note below (65 g)
- 1 large egg lightly whisked
- 1 tablespoon yellow onion finely grated, lightly squeezed if very wet
- 1 tablespoon fresh parsley finely chopped
- 1 tablespoon fresh chives finely chopped
- 2 teaspoon lemon zest
- 1 small garlic clove finely grated
- 1 ¼ teaspoon kosher salt
- ½ teaspoon black pepper
- 2 tablespoon olive oil for searing
➡Making Fresh Breadcrumbs:
- Making Fresh Breadcrumbs For the lightest, most tender meatballs, skip the store-bought dried crumbs. Simply tear two or three slices of high-quality white bread or sourdough (crusts removed) into pieces and pulse them in a food processor until you have soft, pea-sized crumbs. You want them to feel like clouds, not sand!
Lemon Orzo Brodo
- 7 cups chicken stock 1.6 L
- 1 small shallot halved
- 1 strip lemon peel wide, no pith
- ¼ teaspoon fennel seed lightly crushed
- ¼ cup dry white wine 60 ml
- ⅓ cup dry orzo 50 g or substitute with pearl couscous or ditalini pasta
- Salt & pepper to taste
Spring Vegetables
- 1 cup asparagus cut into 1 ½ inch pieces (120 g)
- ½ cup peas 75 g
- 2 cups baby fresh spinach chopped (60 g)
Lemon-Herb Gremolata
- 2 tablespoon parsley finely chopped
- 1 tablespoon chives finely chopped
- 1 teaspoon lemon zest
- ½ small garlic clove very finely grated
- Pinch of salt
- 1 teaspoon olive oil
For Finishing
- 1 to 2 tablespoon fresh lemon juice
- 2 tablespoon olive oil
- Extra Parmigiano Reggiano
- crushed red chili peppers optional
Instructions
Build the Meatball Mixture
- In a large mixing bowl, combine the ground chicken, drained ricotta, Parmigiano, fresh breadcrumbs, whisked egg, grated onion, remaining 1 tablespoon parsley, remaining 1 tablespoon chives, 2 teaspoon lemon zest, 1 grated garlic clove, salt, and pepper. Mix gently by hand until just combined. The texture should be slightly firm and lightly tacky, but not wet.
- ➡Don't Overwork the Meat: Handle the mixture as little as possible. Over-mixing leads to a dense, tough texture. You want to gently fold the ingredients together until they just barely hold.
Rest, Texture Check & Roll
- Let the mixture sit for 10 minutes to allow the breadcrumbs to hydrate. Roll one test meatball. If it is too wet, add 1 tablespoon of breadcrumbs and rest 5 more minutes. If it feels too firm, gently fold in 1 tablespoon of ricotta. Divide the mixture into 8 large meatballs (about 2 ½ to 3 inches) and roll gently without over-compressing.
- ➡The "Wet Hands" Technique: Ground chicken is notoriously sticky. To roll perfectly smooth meatballs without the mixture sticking to your skin, lightly coat your hands with water or a tiny bit of olive oil before forming each one.
Sear the Meatballs
- Heat a large skillet over medium-high heat (approximately 375°F). Lightly brush the meatballs with olive oil, and reshape them if needed. Add 2 tablespoon olive oil to the pan and sear the meatballs on 2 or 3 sides for about 5 to 6 minutes total. They should be golden brown but not cooked through. Work in batches to avoid overcrowding.
- ➡Avoid Over-Searing: When working with lean meat, the goal of the sear is just to develop a golden crust and set the shape. Don't worry about cooking them through in the pan; let the gentle simmer of the brodo do the heavy lifting to keep the protein from getting tough.
Build the Brodo
- In a 3.5 qt saute pan, combine the chicken stock, shallot halves, lemon peel, crushed fennel seed, and white wine. Bring to a boil over high heat, then reduce to a low simmer for 10 minutes. Strain the liquid into a clean pot and discard the solids to ensure a clear broth.
Prepare the Gremolata
- In a small bowl, combine 2 tablespoon of the chopped parsley, 1 tablespoon of the chives, 1 teaspoon of the lemon zest, and ½ of a grated garlic clove. Add a pinch of salt and 1 teaspoon of olive oil. Mix well and set aside to let the flavours meld for at least 5 minutes.
Simmer Orzo and Meatballs
- Bring the strained broth back to a gentle simmer over medium-low heat. Add the orzo and cook for 4 minutes. Carefully add the seared meatballs to the broth. Simmer gently for 8 to 10 minutes until the internal temperature of the meatballs reaches 165°F (74°C). Keep the heat low to maintain broth clarity.
Add Vegetables and Finish
- Stir in the asparagus and peas and cook for 2 minutes. Add the chopped spinach and stir until just wilted. Remove from the heat. Stir in 1 to 2 tablespoon of lemon juice and 2 tablespoon of olive oil. Taste and adjust salt and pepper.
Plating & Serving
- Ladle the orzo and vegetables into wide (or shallow) bowls first, then place two or three meatballs on top so they sit slightly above the broth. Sprinkle the prepared Gremolata over the meatballs only. Finish with a grating of Parmigiano Reggiano, a final drizzle of olive oil and red pepper flakes. Serve with a crusty piece of sourdough to soak up that bright, lemony broth.
💬Tried this recipe?
- We'd really appreciate a quick rating and comment. It helps others decide what to cook next, and we always enjoy hearing what you think!






Giving this one 5 stars in advance because I know all of your recipes are winners! Love all the spring flavours. Can’t wait to try it – thanks!
Thanks so much Debb!
It’s a light, fresh meal that really satisfies!
Have a great day!
Elaine & James
Everything about this dish screams spring! From the brodo, to the tender meatballs, to the gremolata, every bite was fresh and delicious! While my meatballs weren’t as picture perfect as in this recipe, it really didn’t matter!
Do not be intimidated by the many steps, nor the total time, as the dish comes together perfectly. I usually am one to make it “my own” with extras, but don’t this dish is perfect in every way. 10/10 recommend!!
Hi Toni!
We are so incredibly happy to hear you enjoyed this recipe! It’s wonderful that the fresh spring flavours of the brodo and gremolata hit the mark for you.
We saw your photo on IG, and you are being far too modest! Your meatballs and the entire dish looked absolutely amazing. In a cozy, rustic dish like this, it’s that tender texture and vibrant colour that truly count, and you nailed it.
We also love that you trusted the process and found that the steps were worth the effort. Hearing that a recipe is 10/10 and perfect just as it is means the world to us.
Thank you so much for sharing your experience and for the recommendation!
Elaine & James