These classic Italian meatballs combine ground beef and pork with soaked breadcrumbs, Parmesan, and aromatic herbs for ultimate tenderness. After a quick bake in the oven, they finish cooking in a homemade tomato sauce built with olive oil, onion, garlic, and crushed tomatoes. The gentle simmer allows flavors to meld while keeping the meatballs moist. Serve over spaghetti, nestled in a sub, or alongside crusty bread to soak up the sauce.
My grandmother's kitchen always smelled like garlic and tomatoes on Sundays. I spent countless afternoons watching her form meatballs with hands that moved with practiced ease. She never measured anything, yet every batch came out perfectly tender. These days, I've finally figured out her secret—its all about patience and the milk soaked breadcrumbs.
Last winter, during a particularly nasty snowstorm, I made a triple batch for my neighbors. We ended up eating around my tiny kitchen table for hours, passing platters of meatballs and crusty bread. Something about this dish brings people together like nothing else.
Ingredients
- 500 g ground beef (80/20 blend): The fat ratio here is crucial—lean meat makes tough, dry meatballs
- 200 g ground pork: Adds sweetness and keeps the texture light and tender
- 60 g fresh breadcrumbs: Stale bread works even better than fresh if you have it sitting around
- 60 ml whole milk: This soaks into the breadcrumbs creating tiny pockets of moisture throughout each meatball
- 2 large eggs: Room temperature eggs bind everything together without making the mixture rubbery
- 60 g grated Parmesan cheese: Use the good stuff you grate yourself—pre-grated has anti-caking agents that affect texture
- 3 tbsp chopped fresh parsley: Flat leaf parsley has better flavor than curly, though either works in a pinch
- 2 cloves garlic, finely minced: Fresh garlic is non-negotiable here, garlic powder just doesn't cut it
- 1 tsp dried oregano: Dried oregano actually works better than fresh in meatballs since it disperses evenly
- ½ tsp salt: Goes a long way, especially with the Parmesan adding its own saltiness
- ½ tsp freshly ground black pepper: Grind it right before you start cooking for maximum potency
- 2 tbsp extra virgin olive oil: The foundation of your sauce, so use something you'd drizzle on salad
- 1 small onion, finely chopped: Sweet onions work beautifully here, though yellow onions are perfectly fine
- 2 cloves garlic, minced: More garlic because you can never have too much in an Italian sauce
- 800 g canned crushed tomatoes: San Marzano tomatoes are worth the extra few dollars if you can find them
- 1 tsp sugar: Cuts the acidity of the tomatoes without making the sauce taste sweet
- 1 tsp dried basil: Complements the oregano without overwhelming the other flavors
Instructions
- Get your oven ready:
- Preheat to 200°C (400°F) and line a baking tray with parchment paper for easy cleanup later
- Start the breadcrumb soak:
- Combine breadcrumbs and milk in a large bowl, letting them sit for 2–3 minutes until the milk is completely absorbed
- Mix everything but dont overmix:
- Add both meats, eggs, Parmesan, parsley, garlic, oregano, salt, and pepper, folding gently with your hands just until combined
- Form the meatballs:
- Shape the mixture into 16 golf ball sized portions, placing them on your prepared baking tray as you work
- Give them a head start in the oven:
- Bake for 15 minutes until lightly browned on the outside but still pink in the center
- Build the sauce foundation:
- While meatballs bake, heat olive oil in a large skillet over medium heat and cook onion until soft, about 5 minutes
- Add the garlic:
- Stir in minced garlic and cook for just 1 minute more until fragrant but not browned
- Bring the sauce together:
- Pour in crushed tomatoes, sugar, dried basil, salt, and pepper, then bring everything to a gentle simmer
- Let them finish together:
- Nestle the browned meatballs into the sauce, cover, and simmer for 20–25 minutes until cooked through
- Serve them up:
- Spoon onto plates with extra sauce, scattered with additional Parmesan and parsley if you like
My friend Marco tried these last month and texted me at midnight saying he'd just eaten three meatballs standing at the refrigerator. That's when I knew this recipe was worth sharing.
Making Ahead Like a Pro
I always double this recipe and freeze half the raw meatballs on a baking sheet before transferring to bags. They cook up perfectly from frozen, just add 5 minutes to the baking time. Having homemade meatballs ready to go makes weeknight dinners feel special without any extra effort.
The Bread Secret
Day-old Italian bread torn into pieces and pulsed in a food processor makes the most incredible breadcrumbs. They absorb milk differently than store bought ones, creating meatballs with a texture that's somehow both substantial and light. I keep a bag of torn bread pieces in my freezer just for this purpose.
Serving Ideas That Work
These meatballs are incredibly versatile and can transform depending on how you serve them.
- Slide them onto crusty rolls with melted mozzarella for the best sandwich you'll ever make
- Chop them up and fold into your next batch of Sunday gravy for extra depth
- Keep things simple with just sauce, a green salad, and plenty of bread for soaking
There's something profoundly satisfying about a plate of meatballs and sauce. Hope these become part of your kitchen story too.
Recipe FAQs
- → Why mix beef and pork for meatballs?
-
The combination adds fat and flavor—beef provides structure while pork contributes richness and moisture, creating tender, juicy meatballs that don't dry out during cooking.
- → What's the purpose of soaking breadcrumbs in milk?
-
Soaking breadcrumbs creates a panade, a mixture that keeps meatballs tender and moist by preventing proteins from shrinking too much during cooking, resulting in lighter texture.
- → Why bake meatballs before simmering in sauce?
-
Baking sets the exterior shape and renders excess fat, preventing meatballs from falling apart in the sauce while still allowing them to absorb flavors during the final simmer.
- → Can I make these meatballs ahead of time?
-
Absolutely. Form and refrigerate raw meatballs up to 24 hours before cooking, or simmer fully cooked meatballs and refrigerate in sauce for 3–4 days—they actually taste better the next day.
- → How do I prevent meatballs from becoming tough?
-
Mix ingredients gently just until combined—overworking develops proteins that create dense, rubbery texture. The breadcrumb mixture also helps maintain tenderness without excessive handling.
- → What pasta pairs best with these meatballs?
-
Spaghetti is classic, but wide noodles like pappardelle or fettuccine catch sauce beautifully. For a rustic approach, serve with polenta or crusty bread for dipping.