Soups & Stews
This beef and veal meatball recipe delivers restaurant-quality dumplings with a tender, herb-infused center and a rich tomato broth that elevates every bite. The secret lies in combining ground beef and veal for maximum tenderness, then binding them with fresh herbs, breadcrumbs, and a touch of egg to ensure they hold together perfectly during cooking.
What sets these meatballs apart is the slow simmering in a robust tomato broth infused with garlic, onions, and aromatic spices. This method not only enhances the natural flavors of the meat but also creates a sauce that's rich, velvety, and packed with depth. The result is a dish that's both comforting and sophisticated, perfect for impressing guests or treating yourself to a hearty meal.
By the time you finish, you'll have meatballs that are juicy and flavorful, swimming in a sauce that's thick enough to coat a spoon. The herbs—parsley, basil, and thyme—add bright, fresh notes that cut through the richness, while the breadcrumbs provide just the right texture. This dish is versatile enough to serve with crusty bread, over pasta, or alongside roasted vegetables.
The best part? The flavors only get better as they sit, making this an ideal dish to prepare ahead of time. Whether you're hosting a dinner party or simply craving a comforting meal, these beef and veal meatballs in rich tomato broth will deliver satisfaction every time. Let's get started on creating a dish that feels like a hug in every bite.
Ingredients for beef and veal meatball
Herb-packed meatballs and velvety tomato broth create a restaurant-worthy dish with just 16 ingredients.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef 🥩 | 1 lb | 80/20 fat ratio preferred |
| Ground Veal 🥩 | ½ lb | Finely ground for tenderness |
| Fresh Parsley 🌿 | ¼ cup | Stems removed, chopped fine |
| Fresh Basil 🌿 | 0.15 cup | Chopped, for herb infusion |
| Fresh Thyme 🌿 | 0.05 cup | Leaves only, chopped |
| Large Eggs 🥚 | 1 whole | Room temperature for binding |
| Plain Breadcrumbs 🍞 | ½ cup | Dry, panko works too |
| Garlic Cloves 🧄 | 4 cloves | Minced for sauce |
| Yellow Onion 🧅 | 1 whole | Medium size, finely chopped |
| Canned Tomato Sauce 🍅 | 1 cup | San Marzano preferred |
| Crushed Tomatoes 🍅 | 1 cup | No salt added |
| Extra-Virgin Olive Oil 🫒 | 2 tbsp | For browning meatballs |
| Dry Red Wine 🍷 | ¼ cup | Bold variety like Cabernet |
| Vegetable Broth 💧 | 1 cup | Low sodium preferred |
| Kosher Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly cracked |
The meat blend is everything—ground beef and veal (80/20 fat ratio) create the perfect balance of tenderness and flavor. Costco or Whole Foods carry high-quality ground veal, but most grocery stores stock it too. Look for finely ground meat—it makes a smoother texture. Fresh herbs are non-negotiable here; Trader Joe's has great bundles of parsley and basil. If you can't find fresh thyme, dried works at one-third the amount. The breadcrumbs should be plain—no seasoning packets—so you control the flavor.
No San Marzano tomatoes? Any high-quality canned tomatoes work, but avoid those with added salt. Short on red wine? Substitute beef broth with a splash of balsamic vinegar for depth. The olive oil matters—use extra-virgin for richness. For the meatballs, chill the mixture for 30 minutes before shaping to help them hold together. The sauce can be made ahead and reheated—it tastes even better the next day as flavors meld. If you're serving a crowd, double the sauce ingredients but keep the meatballs the same size for perfect portion control.
Meatballs keep 3 days in the fridge, covered tightly. The sauce can be stored separately for 5 days or frozen for 3 months**. Reheat gently on low heat—never microwave, or the sauce will split. For make-ahead convenience, freeze meatballs on a tray first, then transfer to a bag. Thaw in the fridge overnight. The herbs in the sauce will wilt slightly after freezing, but a fresh sprinkle of parsley before serving fixes that. This dish reheats beautifully and tastes even better the second time around.
Why You'll Love This Recipe
- No-Fuss Mixing: I swear by the 5-minute prep—just combine the beef and veal, add the chopped herbs (parsley, basil, thyme), and let your fingers do the work. No food processor, no stress, just raw flavor waiting to happen.
- Herb-Packed Punch: That bright trio of parsley, basil, and thyme? It’s the secret weapon—fresh, vibrant, and cutting through the richness of the beef and veal like a breath of air. (Yes, even my picky husband asks for seconds.)
- Leftovers That Shine: Freeze half the batch raw—perfect for lazy nights or when you’re hosting. Toss them in marinara, serve over polenta, or just eat them straight with crusty bread. They reheat like a dream, no dryness in sight.
- Budget-Friendly Luxury: Veal might sound fancy, but splitting it with beef keeps costs down while upping the richness. A little goes a long way, and the leftovers stretch across meals without feeling like a chore. My wallet thanks me.
Step-by-step instructions for herb-infused beef and veal meatballs
Mastering these meatballs comes down to perfecting the mix and simmering technique.
Combine Meat and Herbs for Maximum Flavor
In a large mixing bowl, combine the 1 lb ground beef and 0.5 lb ground veal. The veal adds tenderness while the beef provides structure. Gently break up any large clumps with your hands, being careful not to overwork the mixture—this keeps the meatballs tender.
Add the 0.25 cup chopped fresh parsley, 0.15 cup chopped fresh basil, and 0.05 cup chopped fresh thyme to the meat mixture. These herbs infuse deep flavor as they cook. Let them sit in the bowl for 5 minutes to allow the aromas to meld before proceeding. This brief resting period ensures even distribution of the herbs throughout the meat.
Bind the Mixture with Egg and Breadcrumbs
In a separate small bowl, lightly beat the 1 whole large egg until just combined—no need to overmix. Add the egg to the meat mixture along with the 0.5 cup plain breadcrumbs. The breadcrumbs help absorb moisture and create a light, airy texture in the finished meatballs.
Using your hands, gently fold all ingredients together until just combined. Avoid compacting the mixture too tightly—this prevents dense meatballs. The mixture should hold together when pressed but remain slightly crumbly. If it feels too wet, add 1 tablespoon more breadcrumbs; if too dry, add 1 teaspoon vegetable broth. Form into 16 equal-sized meatballs (about 1.5 inches in diameter) and set aside on a plate.
Brown the Meatballs for Deep Flavor
Heat 2 tablespoons extra-virgin olive oil in a large, heavy-bottomed skillet over medium-high heat until shimmering. Working in batches to avoid crowding, add the meatballs in a single layer. Let them brown undisturbed for 3-4 minutes per side until they develop a rich, golden crust. This browning step creates the foundational flavor for the dish.
Transfer the browned meatballs to a plate and set aside. If the oil in the pan becomes dark and smoky, discard it and add 1 tablespoon fresh olive oil to the pan before proceeding with the next batch. The residual oil should be light golden, not dark brown.
Build the Rich Tomato-Wine Sauce
In the same skillet, reduce heat to medium and add the 1 whole finely chopped yellow onion. Sauté for 5 minutes until softened and translucent. Add the 4 minced garlic cloves and cook for 30 seconds until fragrant—this prevents bitterness and deepens the flavor.
Pour in the 0.25 cup dry red wine and scrape up any browned bits from the bottom of the pan. Let the wine simmer for 2 minutes until reduced by half. This step concentrates the wine's flavor, which forms the sauce's backbone. Add the 1 cup canned tomato sauce and 1 cup crushed tomatoes, stirring to combine. Bring to a gentle simmer and let cook for 5 minutes to meld the flavors.
Simmer Meatballs in Flavorful Broth
Return the meatballs to the skillet and pour in the 1 cup vegetable broth. Increase heat to medium-high and bring to a gentle boil. Once boiling, reduce heat to low and let the meatballs simmer for 20-25 minutes, partially covered. The sauce should reduce slightly, coating the meatballs in a glossy, rich tomato-wine broth.
Season with 1.5 teaspoons kosher salt and 0.5 teaspoon ground black pepper. Taste and adjust the seasoning—you may need more salt depending on your broth. The meatballs are done when they're cooked through (internal temperature of 160°F) and the sauce has thickened to a velvety consistency. Serve immediately over polenta, crusty bread, or with a side of roasted vegetables.
Pro Tips For Making Beef And Veal Meatball
- Mix Wet and Dry First: Don’t just dump everything into the meat and start kneading—first combine the ground beef and veal with the finely chopped herbs (parsley, basil, thyme) and any dry seasonings (salt, pepper, breadcrumbs). Mix until the herbs are evenly distributed, then add wet ingredients like egg or milk. This keeps the meatballs from turning mushy when you handle them later.
- Chill Before Forming: After mixing, pop the meatball mixture into the fridge for at least 30 minutes. I learned this the hard way—skipping this step means the meatballs fall apart when you try to roll them. Cold meat holds its shape better, and you’ll get cleaner, firmer balls. (Yes, even if you’re impatient like me.)
- Brown Them Twice: Don’t just sear the meatballs once and call it a day. After an initial sear in a hot pan (until golden), transfer them to a baking sheet and finish in a 375°F oven for 10–15 minutes. This ensures they’re cooked through without drying out, especially since veal can be trickier than beef alone.
- Use Ice Water for Herbs: Instead of just chopping fresh parsley, basil, and thyme, pulse them in a food processor with a handful of ice cubes. The cold water keeps the herbs from turning bitter and makes them release more flavor into the meatballs. (Sounds weird, but it works—trust me.)
Wine and beer pairings for this dish
Bold Red Wine Pairings
For these rich, herb-infused meatballs, I reach for a bold Italian red wine like Chianti Classico or Sangiovese. The medium body and bright acidity cut through the tomato sauce's richness while complementing the herbs. A glass of 2018 Chianti Classico from Tuscany (around $25-$35) brings perfect balance—its cherry notes mirror the meatballs' depth. 🍷
Crisp White Alternatives
If you prefer white wine, opt for a dry, aromatic variety like Soave Classico or Vermentino. These wines have enough acidity to stand up to the tomato sauce while highlighting the fresh herbs. I love Santa Margherita Soave (around $15-$20) for its citrus and almond notes that refresh the palate between bites.
Beer Pairings
A Malty Amber Ale or Italian Lager works beautifully with this dish. Try Peroni or Birra del Borgo—their subtle sweetness and light bitterness contrast the rich tomato sauce. For a craft option, a Belgian Witbier like Hoegaarden adds a peppery, citrusy lift that cleanses the palate. 🍺
Non-Alcoholic Options
For a refreshing non-alcoholic pairing, serve with sparkling blood orange soda or unsweetened hibiscus tea. The citrus notes in the soda echo the herbs, while the tea's tartness balances the dish's richness. I keep a bottle of San Pellegrino Aranciata Rossa on hand for quick gatherings.
Sauce Enhancement Tip
If you're serving wine, deglaze the pan with an extra 1 tablespoon of the same wine after browning the meatballs. This intensifies the sauce's flavor and ensures harmony with your beverage choice. The wine's acidity also helps tenderize the meatballs further. 💡
Nutrition facts
Frequently asked questions
Can I substitute ground turkey or chicken for the veal?
While you can use ground turkey or chicken, the texture and flavor will differ significantly. Ground turkey (especially dark meat) works best, but expect slightly drier meatballs. For chicken, use a 50/50 blend with ground beef to maintain tenderness. The veal adds richness and moisture that lighter meats can't replicate.
Why do my meatballs fall apart when cooking?
Overworking the meat mixture or skipping the 30-minute chill before shaping are common culprits. Also, avoid compacting the meatballs too tightly when forming them—keep them loose and crumbly. If they still fall apart, add 1 extra tablespoon of breadcrumbs to the mixture.
Can I bake these meatballs instead of pan-searing?
Preheat oven to 375°F and bake the meatballs on a parchment-lined tray for 20-25 minutes until internal temp reaches 160°F. For extra flavor, toss them in 1 tablespoon olive oil before baking. The sauce can be made separately and combined later.
How can I make this dish vegetarian?
Replace the meat with 1 lb finely chopped mushrooms (like cremini or portobello) and 0.5 lb cooked lentils, mashed slightly. Use 1 extra tablespoon flaxseed meal mixed with 2 tablespoons water as an egg substitute. The herbs and tomato sauce will still shine, but the texture will be denser.
What's the best way to reheat leftovers?
Gently reheat in a skillet over low heat with 1-2 tablespoons broth or water to prevent drying. Avoid microwaving—it causes the sauce to split. For extra richness, add a splash of red wine or tomato paste while reheating. Meatballs keep 3 days in the fridge or 3 months frozen.
