Soups & Stews
This beef and lamb meatballs recipe delivers restaurant-quality depth with a one-pot sauce that transforms simple ingredients into a rich, aromatic dish. The secret lies in blending tender beef with rich lamb for a meatball that’s both hearty and melt-in-your-mouth tender.
I’ve perfected the technique—hand-rolling for texture, slow simmering for flavor—so every bite is packed with savory satisfaction.
The beauty of this recipe is its versatility. You can bake the meatballs for a crisp exterior or simmer them directly in the sauce for maximum flavor absorption. The one-pot method means less cleanup, while the combination of beef and lamb creates a depth of flavor that’s hard to match.
Whether you’re serving them with crusty bread, over pasta, or as skewers, these meatballs will be the star of your meal.
What makes this dish truly special is the sauce—a blend of tomatoes, herbs, and aromatic spices that infuses the meatballs with warmth and richness. The slow cooking process ensures the meat stays juicy, while the sauce thickens into a velvety consistency that clings to every bite.
This is comfort food at its finest, perfect for feeding a crowd or enjoying a cozy weeknight dinner.
The best part? You can customize it to your taste—add a splash of red wine for depth, a pinch of smoked paprika for warmth, or fresh herbs at the end for brightness. This recipe is foolproof, flavorful, and designed to impress without the fuss. Let’s get cooking!
Ingredients for beef and lamb meatballs
Sixteen ingredients for meatballs that taste like they simmered all day.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef (80/20) 🥩 | 1 lb | Chilled for easier rolling |
| Ground Lamb 🐑 | ½ lb | Lean for best texture |
| Garlic Cloves 🧄 | 4 cloves | Minced, not pre-minced |
| Small Onion 🧅 | 1 whole | Finely diced, white or yellow |
| Fresh Parsley 🌿 | ¼ cup | Stems removed, chopped |
| Fresh Basil 🌿 | ¼ cup | Chopped for freshness |
| Egg 🥚 | 1 whole | Room temperature |
| Breadcrumbs 🍞 | ½ cup | Plain, not seasoned |
| Grated Parmesan Cheese 🧀 | ¼ cup | Freshly grated preferred |
| Olive Oil 🫒 | 2 tbsp | Extra-virgin for richness |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Canned San Marzano Tomatoes 🍅 | 28 oz | Crushed by hand |
| Dry Red Wine 🍷 | ½ cup | Bold variety like Cabernet |
| Beef Broth 💧 | 1 cup | Low-sodium preferred |
The lamb and beef combo is what makes these special. Costco or your butcher's counter will have the best ground lamb—look for bright red color, not brownish. Ground beef should be 80/20 fat ratio for juiciness. I always grab extra parsley and basil at Trader Joe's—they keep longer than you'd think. The San Marzano tomatoes? Worth the splurge for that sweet, rich flavor. If you can't find them, any high-quality canned tomatoes will do, but don't skip crushing them by hand—it makes all the difference.
No red wine? Dry sherry or extra beef broth works in a pinch. Fresh herbs wilt fast, so if you're prepping ahead, dried parsley and basil at half the amount get you close. The breadcrumbs can be panko if you prefer extra crunch. For the meatballs, I like to make them slightly larger than a golf ball—easier to handle and they cook evenly. The Parmesan adds great depth, but nutritional yeast works as a dairy-free alternative. And trust me on the olive oil—don't use the cheap stuff here.
These meatballs keep beautifully. Store leftovers in the fridge for 4-5 days, or freeze for 3 months by portioning into airtight containers. The sauce actually tastes better the next day—all those flavors meld together. For serving, I like to reheat gently with a splash of water or broth. They're perfect for meal prep—just double the batch and you're set for lunches all week. The wine and broth can be prepped ahead too, so you're not scrambling on cooking day.
Why You'll Love This Recipe
- No-Fuss Mixing: I swear by the 80/20 beef and lamb combo—no fancy ratios, just two bags of meat, a quick chop of onion, and minced garlic. Five minutes of kneading, done. (Honestly, my hands are cleaner than most recipes I’ve tried.)
- Rich Umami Bomb: That lamb fat in the ground beef? Pure flavor gold. The parsley brightens it up just enough to make every bite feel special—not heavy, not bland, just ridiculously good with a crispy sear.
- Weeknight to Party: Same meatballs, endless uses. Toss them in marinara for a Tuesday dinner, serve them skewered with pita for a last-minute guest night, or freeze half for when you’re too tired to cook. (Yes, even on a Tuesday night.)
- Budget Stretch: Ground lamb can be pricey, but the beef cuts the cost while keeping the richness. A single batch feeds four tonight and four more later—no wasted ingredients, just leftovers that disappear faster than I can reheat them.
Step-by-step instructions for beef and lamb meatballs in one-pot sauce
Here's how to make these rich, flavorful meatballs with minimal cleanup.
Prepare the Meatball Mixture
In a large bowl, combine the 1 lb ground beef (80/20) and 0.5 lb ground lamb. This fat ratio ensures juicy meatballs that stay tender. Add the room temperature egg and mix gently until just combined—overmixing develops gluten and makes meatballs tough.
Next, fold in the 0.5 cup breadcrumbs, 0.25 cup grated Parmesan cheese, 1.5 tsp salt, and 0.5 tsp ground black pepper. The breadcrumbs help bind the mixture while adding texture. For the aromatics, add the 4 minced garlic cloves, 1 finely diced small onion, 0.25 cup chopped fresh parsley, and 0.25 cup chopped fresh basil. Mix everything together with your hands until fully incorporated—this ensures even distribution of flavors.
Form and Brown the Meatballs
Using your hands, form the mixture into 1.5-inch meatballs (about 12 total). I roll them gently but firmly to maintain shape while keeping them tender. Heat the 2 tbsp olive oil in a large Dutch oven over medium-high heat until shimmering.
Working in batches, brown the meatballs for 3-4 minutes per side until they develop a deep golden crust. Don't overcrowd the pan—this prevents them from cooking evenly. Transfer the browned meatballs to a plate as you go, keeping them warm while you finish browning the rest.
Build the Sauce Base
Once all meatballs are browned, reduce heat to medium. Add the 0.5 cup dry red wine to the Dutch oven, scraping up any browned bits from the bottom—this releases all the meaty flavor. Let it simmer for 2-3 minutes until mostly evaporated.
Pour in the 28 oz crushed San Marzano tomatoes and 1 cup beef broth. Stir well to combine, then add the meatballs back to the pot. Bring to a gentle simmer, then reduce heat to low. The sauce should bubble softly—this ensures the meatballs cook through without falling apart.
Simmer to Perfection
Cover the Dutch oven and let the meatballs simmer for 30-35 minutes. You're looking for tender meatballs that are cooked through but still juicy. The sauce should reduce slightly, coating the meatballs in a rich, velvety consistency.
After 20 minutes, give the sauce a quick stir and check the seasoning. If needed, add a pinch more salt or a crack of black pepper. The meatballs are done when they reach an internal temperature of 160°F—use a meat thermometer to check the thickest one.
Rest and Serve
Remove the lid and let the sauce thicken slightly for 5 minutes on the stovetop. The meatballs will continue cooking from residual heat, and the sauce will develop a deeper flavor. Serve immediately over al dente pasta or with crusty bread to soak up every last drop of that rich, herby sauce.
These meatballs keep well in the sauce for 2-3 days in the refrigerator, making them perfect for meal prep. The flavors only get better as they sit—just reheat gently on the stove with a splash of broth or water to loosen the sauce.
Pro Tips For Making Beef And Lamb Meatballs
- Mix Wet First: I learned this the hard way—when I added the parsley and onion last, the meatballs turned out dense and dry. Instead, chop the onion and garlic finely (almost paste-like), then mix them with the ground beef and lamb before adding any wet ingredients. This ensures even distribution and prevents dry spots in the center.
- Salt the Lamb Early: Ground lamb has a stronger flavor than beef, so if you’re using it in equal parts, season it separately with half the total salt first. Let it sit for 5 minutes while you mix the beef—this guarantees the lamb’s seasoning penetrates before everything comes together.
- Don’t Overwork the Lamb: Lamb fat renders faster than beef fat, and squeezing it too much releases moisture that turns the mixture gluey. Once you’ve mixed in the wet ingredients (like parsley stems or a splash of water), stop handling the meat beyond gentle folding. Overmixing = tough meatballs.
- Sear in Batches: Crowding the pan leads to steaming, not browning. Use a 12-inch skillet and cook meatballs in batches of 6-8, spaced apart. High heat for 2 minutes per side—yes, it takes longer, but that crust is what makes these meatballs taste restaurant-worthy.
Common mistakes when making great beef and lamb meatballs
Overmixing the Mixture
This is the #1 mistake that turns tender meatballs into dense, rubbery bricks. I’ve ruined more meatballs than I’d admit by overworking the mixture—especially when I’m nervous about them falling apart. The key is to mix just until everything comes together, then stop.
Use your hands to gently fold in the breadcrumbs and herbs, but avoid punching or kneading like you’re making dough. The meat’s natural fat and egg will bind everything together without needing brute force. 🥩
Skipping the Brown
Many recipes let you skip browning and go straight to simmering, but that’s a flavor crime. Those golden-brown bits (fond) on the bottom of your pan hold deep, caramelized flavors that dissolve into your sauce. I always brown my meatballs in batches, even if it takes a little longer.
Use a Dutch oven for this—its deep sides prevent splatter and give you room to work. If you’re short on time, sear them in a cold skillet and let them render their fat slowly over low heat.
Using Lean Meat
Ground beef and lamb both have fat content for a reason—it keeps them juicy! I’ve made the mistake of using extra-lean ground beef (90/10) thinking it’s healthier, but the result was dry, crumbly meatballs.
Stick with 80/20 ground beef for beef and lean but not extra-lean lamb (ask your butcher for the right grind). The fat melts during cooking, basting the meatballs from within.
If you’re concerned about fat, trim any visible fat from the lamb before grinding, but leave the rest to work its magic. 🌶️
Incorrect Meatball Size
Consistency is key here. I’ve seen recipes call for "golf-ball sized" meatballs, but that’s vague. Aim for 1.5-inch diameter (about the size of a walnut). Smaller meatballs cook faster but can dry out, while larger ones stay moist longer but may not cook through evenly.
Weigh your portions if you’re unsure—about 2 oz per meatball gives you the perfect balance. Use a kitchen scale for accuracy, or roll them all the same size by eye before you start cooking.
Rushing the Simmer
Patience is everything with these meatballs. I’ve rushed the simmering process before, checking the meatballs after just 20 minutes and ended up with tough centers. The magic happens at low heat—cover the pot and let them cook gently for the full 30-35 minutes.
The internal temperature should reach 160°F (use a meat thermometer!). If your sauce reduces too quickly, add a splash of broth or water to maintain moisture. The longer they simmer, the more flavorful the sauce becomes—don’t skip this step! ⏰
Ignoring the Rest
Serving meatballs straight from the pot is a common mistake, especially when you’re eager to eat. But letting them rest for 5-10 minutes after cooking allows the juices to redistribute, keeping them tender. I also let the sauce thicken slightly during this time—it develops a deeper, more concentrated flavor.
If you’re serving with pasta, toss the meatballs and sauce together right before plating to keep everything hot and cohesive. Trust me, that extra rest time makes all the difference! 💫
Nutrition facts
Frequently asked questions
Can I make these meatballs without wine?
Replace the 0.5 cup dry red wine with 0.5 cup beef broth or 0.5 cup dry sherry for similar depth of flavor. The wine adds richness, but these alternatives work perfectly. Just simmer the broth or sherry for 2-3 minutes to concentrate the flavors before adding tomatoes.
How do I store leftovers?
Store in an airtight container in the fridge for 4-5 days or freeze for 3 months. The sauce actually improves overnight—reheat gently with a splash of broth or water. For freezing, portion into individual servings before sealing to make reheating easier.
Can I bake these instead of simmering?
Yes! Preheat oven to 375°F and bake the meatballs on a parchment-lined tray for 20-25 minutes until golden. For sauce, transfer meatballs to a baking dish, pour sauce over them, cover with foil, and bake for 15-20 minutes more. The texture will be slightly different but still delicious.
What's the best way to serve these?
These meatballs shine with al dente pasta, crusty bread, or over roasted potatoes. For extra flair, garnish with fresh basil and a sprinkle of Parmesan cheese. They also work beautifully as skewers with grilled veggies or in a hearty salad with arugula and balsamic glaze.
Why are my meatballs falling apart?
Overmixing or using too much breadcrumbs (or not enough egg) causes this. Mix just until combined, use 0.5 cup breadcrumbs as written, and ensure your egg is room temperature. Also, avoid overcrowding the pan when browning—this steams them instead of searing.
