Saucy Beef Meatballs with Butter Beans Recipe

I’ll never say no to a juicy meatball, and these beef meatballs are especially hard to resist. They’re ideal for a simple weeknight dinner: packed with basil pesto, caramelized onions and garlic, then simmered in a rich tomato sauce that hides plenty of vegetables. Protein-rich butter beans and a generous sprinkle of parmesan round out the dish for a comforting, crowd-pleasing meal.

Holding plate with beef meatballs and butter beans in tomato sauce.

Saucy Beef Meatballs, at a Glance

⏰ Total time: 45 minutes

🍽 Servings: 4

🛒 Key ingredients: Ground beef, canned tomatoes, butter beans, garlic, basil

🧠 Skill level: Beginner-friendly

🔥 Cooking method: Air fryer and stovetop

💪 Protein: 38g per serving

🥗 Perfect for: Weeknight dinners, casual entertaining, meal prep lunches

💕 Why you’ll love it: Protein-packed, filled with hidden vegetables, easy to prepare ahead, and full of familiar, comforting flavors.

The meatballs I make at least once a week

One of my favorite things about this recipe is how well the butter beans work in the sauce. Even if someone thinks they don’t like beans, they usually end up loving this—because the beans soak up the tomato and garlic flavors and add extra protein and texture. The sauce is built to hide vegetables: zucchini and carrot soften and melt into the tomatoes so you get a hearty, veg-packed sauce without it feeling like a vegetable-forward meal.

The meatballs themselves stay juicy thanks to a combination of Greek yogurt, caramelized onions and a little pesto for bright herb flavor. If you have caramelized onions prepared or a good relish, they add a lovely sweet-savory note. Everything finishes by simmering together with the butter beans and spinach so the meatballs finish cooking in the sauce and absorb more flavor.

Finish the dish with a drizzle of basil pesto and plenty of grated parmesan, and you’ve got a meal that reheats beautifully for lunches the next day.

Kate sign-off.

icon

Kate’s Prep Ahead Tips

Both the sauce and the meatballs can be made ahead:

  1. Make the sauce and store it in the fridge for up to five days.
  2. Prepare the meatball mixture and keep it refrigerated for up to 48 hours before shaping.
  3. Roll the meatballs and refrigerate them until you’re ready to cook.
  4. Alternatively, cook the whole dish ahead and reheat gently on the stovetop when needed.

Like this recipe? Try these meatball ideas next

img 250456 4

One Pot Saucy Satay Chicken Meatballs

Dumpling meatballs on gochujang sauce with pickled cucumber on an oval platter.

Juicy Dumpling Meatballs with Creamy Gochujang Sauce

'Marry Me' chicken meatballs in sundried tomato sauce in a small pan.

30 Minute One Pot ‘Marry Me’ Chicken Meatballs

Lemon chicken meatballs on whipped feta with pesto.

Lemony Chicken Meatballs with Whipped Feta and Pesto

If you make this recipe, I’d love to hear about it. Leave a recipe rating and a comment below, and tag @DishedByKate on social media if you share your recreation — seeing your versions always makes my day.

Holding plate with beef meatballs and butter beans in tomato sauce.
Kate Phillips

Saucy Beef Meatballs with Butter Beans

These beef meatballs combine basil pesto, caramelized onions and garlic with a tomato sauce that hides zucchini and carrot. Butter beans add protein and body, while spinach and parmesan finish the dish.
Print
Pin
Rate
Prep Time: 15 mins
Cook Time: 30 mins
Total Time: 45 mins
Servings: 4
Course: Main Course
Cuisine: Mediterranean
Ingredients
Method
Nutrition
Notes

Ingredients

For the meatballs –
  • 1 lb (500g) ground beef
  • 3 garlic cloves, crushed
  • 1/3 cup Greek yogurt
  • 1/3 cup panko breadcrumbs (or regular breadcrumbs)
  • 1 tablespoon dried thyme or oregano
  • A handful of fresh parsley, chopped
  • 1 tablespoon fresh basil pesto
  • 1/4 cup caramelized onions (or relish)
  • 1 teaspoon salt
For the sauce –
  • 1 tablespoon olive oil
  • 1/4 cup caramelized onions or relish
  • 1 zucchini, grated
  • 1 carrot, grated or finely diced
  • 4 garlic cloves, crushed
  • 2 teaspoons dried herbs (mixed Italian herbs or oregano)
  • Salt, to taste
  • 2 tablespoons tomato puree
  • 1 can crushed tomatoes or passata (14 oz / 400 g)
  • 1 can butter beans (14 oz / 400 g), drained
  • 2 big handfuls of spinach, chopped
  • Parmesan, to serve
  • 1/4 cup basil pesto, to serve

Method

  1. Make the meatball mix.
    In a large bowl combine the ground beef, crushed garlic, Greek yogurt, panko breadcrumbs, dried thyme, basil pesto, caramelized onions, salt and chopped parsley. Mix thoroughly until evenly combined. If you want to check seasoning, fry a small pinch and taste.
  2. Shape the meatballs.
    Use a heaped tablespoon of mixture for each meatball and roll into balls. Wetting your hands slightly helps prevent sticking.
  3. Cook the meatballs.
    Arrange meatballs in a single layer in an air fryer basket if using, and air fry at 400°F (200°C) for about 9 minutes until golden. They will finish cooking in the sauce.
    Alternatively, brown them gently in a skillet in batches on the stovetop.
  4. Start the sauce.
    While the meatballs cook, heat the olive oil in a large high-sided skillet over medium heat. Add the caramelized onions, then the grated zucchini, carrot, crushed garlic, dried herbs and a good pinch of salt. Cook for 7–10 minutes, stirring, until the vegetables have softened and excess liquid has mostly evaporated.
  5. Thicken the sauce.
    Stir in the tomato puree and cook for a couple of minutes until it darkens slightly. Add the crushed tomatoes and the drained butter beans, stir and bring to a simmer. Cook about 10 minutes until the sauce has thickened.
  6. Add the meatballs.
    Gently add the cooked meatballs to the sauce and stir to combine. Simmer a few minutes so the meatballs finish cooking and absorb sauce flavor. Stir in the chopped spinach and let it wilt.
  7. Finish and serve.
    Taste and adjust seasoning with salt and pepper. Drizzle with basil pesto and scatter grated parmesan before serving.

Nutrition

Per serving (approx):

  • Serving size: 200 g
  • Calories: 505 kcal
  • Carbohydrates: 31 g
  • Protein: 38 g
  • Fat: 27 g
  • Saturated fat: 9 g
  • Sodium: 680 mg
  • Fiber: 8 g

Notes

Make ahead and storage:

  • The sauce keeps in the fridge for up to five days.
  • The uncooked meatball mixture can be refrigerated for up to 48 hours before shaping.
  • Shaped meatballs can be stored and cooked later.
  • The whole dish can be cooked in advance and reheated gently on the stovetop.

Ingredient notes: Lean ground beef works well because the pesto, caramelized onions and Greek yogurt keep the meatballs moist. Use a good quality basil pesto—homemade or store-bought—to boost flavor. If you need caramelized onions quickly, use a prepared relish or make them in a pressure cooker.

Tried this recipe?

Let me know by leaving a rating and comment below.