My grandmother kept a wooden spoon in her sauce pot that I swear had absorbed three decades of Sunday gravy. She’d lift the lid, the kitchen would go quiet for a beat, and that low hum of garlic, slow-simmered tomato, and beef would drift through the whole apartment. This italian meatballs recipe is my version of those afternoons — tender, herb-flecked meatballs settled into a quick marinara that tastes like it cooked all day. You’ll get the one trick that keeps them juicy (it’s not what most blogs tell you), how to brown them without breaking them apart, and how to finish them in the sauce so the meat drinks up every bit of flavor.
Why you’ll love this dish
There’s a reason classic Italian meatballs have stayed on family tables for generations. They’re forgiving — you can shape them ahead, freeze them, double the batch. They feed a hungry crowd without keeping you tied to the stove. And the smell alone tends to pull people into the kitchen before dinner’s even on the table.
This version is built for weeknights. Sixty minutes from start to plate, with most of that being hands-off simmering. The meatballs themselves come together in one bowl, and the marinara cooks in the same skillet you browned them in — fewer pans, more flavor.
Trust me on this one: homemade italian meatballs actually improve overnight. So if you’re hosting Sunday dinner, make them Saturday. The flavor deepens, the herbs settle in, and reheating in the sauce keeps every meatball tender.
How this italian meatballs recipe comes together
The whole process breaks into three honest moves. First, you build the panade — that’s just breadcrumbs soaked in milk — and fold it into the meat with cheese, egg, and herbs. The panade is doing the heavy lifting here; without it, you’d end up with hockey pucks.
Second, you shape and brown. The browning step isn’t about cooking the meatballs through (it shouldn’t); it’s about building a crust that adds depth. A quick sear on all sides, then out of the pan.
Third, you build the marinara in the same skillet so it picks up the fond — those caramelized bits stuck to the pan — and then you return the meatballs to finish in the sauce. They simmer just long enough to cook through and absorb the tomato. Done.
What you’ll need
For the meatballs:
- 1 lb (450 g) lean ground beef (90/10)
- 1/2 lb (225 g) ground pork
- 2/3 cup fresh breadcrumbs (from 2 slices crustless white bread)
- 1/3 cup whole milk
- 1/2 cup grated Parmesan cheese
- 1 large egg
- 3 cloves garlic, finely minced
- 1/4 cup fresh parsley, finely chopped
- 1 tsp dried oregano
- 1 tsp salt
- 1/2 tsp black pepper
- 2 tbsp olive oil (for browning)
For the marinara sauce:
- 1 tbsp olive oil
- 1/2 yellow onion, finely diced
- 2 cloves garlic, minced
- 28 oz (800 g) can crushed tomatoes
- 1 tsp dried basil
- 1/2 tsp salt
- 1/4 tsp black pepper
- 1 tsp sugar (optional, to balance acidity)
- Extra Parmesan and fresh parsley, to serve
A few swaps that work without compromising the end result. If you can’t find ground pork, use all beef but bump the fat ratio to 80/20 — pork brings moisture, and lean beef alone tends to dry out. No fresh breadcrumbs? Tear two slices of soft sandwich bread and pulse them in a food processor; panko works in a pinch but the texture sits a bit grainier. And the sugar in the marinara is optional, but if your tomatoes taste sharp out of the can, a single teaspoon rounds them out without turning the sauce sweet.
Step-by-step instructions

- Pour the milk over the fresh breadcrumbs in a large bowl. Let them sit for 5 minutes until the bread fully absorbs the liquid and turns into a soft paste — this panade is the secret to tender, juicy meatballs.

- Add the ground beef, ground pork, Parmesan, egg, minced garlic, parsley, oregano, salt, and pepper to the soaked breadcrumbs. Mix gently with your hands just until combined — overmixing turns the meatballs tough, so stop the second everything looks evenly distributed.

- Scoop about 3 tablespoons of mixture per meatball and roll between your palms into roughly 20 evenly sized balls (golf-ball size). Even sizing matters — uneven ones cook unevenly, so use a cookie scoop if you’ve got one.

- Heat 2 tbsp olive oil in a large skillet over medium heat and brown the meatballs on all sides, about 6 to 8 minutes total. They will not be cooked through yet — that’s intentional. Transfer them to a plate and don’t crowd the pan; brown in two batches if needed.

- In the same skillet, sauté the onion and garlic in 1 tbsp olive oil until soft, about 3 minutes. Stir in the crushed tomatoes, basil, salt, pepper, and sugar. Scrape up the fond from the bottom of the pan and simmer the sauce for 10 minutes.

- Return the meatballs to the sauce, cover, and simmer gently for 20 minutes until cooked through and tender. Serve hot, topped with extra Parmesan and fresh parsley.
Recipe card

Italian Meatballs
Tender, juicy Italian meatballs simmered in a rich marinara — Sunday-dinner flavor on a weeknight schedule, all in one skillet.
Ingredients
- 1 lb (450 g) lean ground beef (90/10)
- 1/2 lb (225 g) ground pork
- 2/3 cup fresh breadcrumbs (from 2 slices crustless white bread)
- 1/3 cup whole milk
- 1/2 cup grated Parmesan cheese
- 1 large egg
- 3 cloves garlic, finely minced
- 1/4 cup fresh parsley, finely chopped
- 1 tsp dried oregano
- 1 tsp salt
- 1/2 tsp black pepper
- 3 tbsp olive oil (divided: 2 tbsp for browning, 1 tbsp for sauce)
- 1/2 yellow onion, finely diced
- 2 cloves garlic, minced (for sauce)
- 28 oz (800 g) can crushed tomatoes
- 1 tsp dried basil
- 1/2 tsp salt (for sauce)
- 1/4 tsp black pepper (for sauce)
- 1 tsp sugar (optional, to balance acidity)
- Extra Parmesan and fresh parsley, to serve
Instructions
- Soak the breadcrumbs in milk in a large bowl for 5 minutes until they form a soft paste.
- Add the ground beef, pork, Parmesan, egg, minced garlic, parsley, oregano, salt, and pepper. Mix gently with your hands just until combined.
- Scoop 3 tablespoons per meatball and roll into roughly 20 evenly sized balls.
- Heat 2 tbsp olive oil in a large skillet over medium heat and brown the meatballs on all sides, 6 to 8 minutes total. Transfer to a plate.
- Sauté the onion and garlic in 1 tbsp olive oil in the same skillet until softened. Stir in the crushed tomatoes, basil, salt, pepper, and sugar. Simmer 10 minutes.
- Return the meatballs to the sauce, cover, and simmer gently for 20 minutes until cooked through. Serve hot with extra Parmesan and parsley.
Nutrition (per serving)
- 340Calories
- 32 gProtein
- 12 gCarbs
- 19 gFat
Nutrition information is calculated using ingredient databases and is an estimate. Actual values may vary based on specific ingredients and brands used.
Best ways to enjoy it
The classic move is spaghetti — meatballs spooned over a tangle of pasta with extra sauce ladled across the top, a generous shower of Parmesan, and a few torn basil leaves. But italian meatballs in marinara sauce go far beyond noodles.
Try them on toasted ciabatta with provolone melted under the broiler for a meatball sub that puts deli versions to shame. Serve them over creamy polenta or mashed potatoes if you want something cozier. Or skip the carb entirely — pile them on a bed of garlicky sautéed spinach with a drizzle of olive oil and you’ve got a low-carb plate that still feels like a treat. They are also excellent plated next to a tray of caramelized Brussels sprouts. And if comfort-food casseroles are your thing, this tot-topped beef-and-cheese bake lands in the same cozy territory.
For drinks, a medium-bodied Italian red works beautifully — Chianti, Montepulciano, or a Sangiovese. If wine isn’t your thing, cold sparkling water with lemon cuts the richness and keeps the meal feeling light.
How to store & freeze
Cooked meatballs keep beautifully in the fridge for 4 days, stored in their sauce in an airtight container. The sauce actually protects them from drying out, so don’t store the meatballs separately if you can help it.
For longer storage, freeze them with the sauce in a freezer-safe container for up to 3 months. Thaw in the fridge overnight before reheating, or pull them straight from frozen and warm them slowly in a covered pot over low heat.
To reheat, the stovetop wins every time. A covered skillet over medium-low heat with a splash of water or extra tomato sauce keeps them moist. The microwave works in a pinch but tends to make the outside rubbery — cover with a damp paper towel and use 50% power if you go that route.
Pro chef tips
A handful of details that separate good meatballs from great ones.
- Mix the meat with cold hands, or even ice-rinsed hands. Warm hands start melting the fat, and that fat is what keeps the meatballs juicy.
- Use a digital scale or a cookie scoop to portion. Eyeballing 20 even balls is harder than it looks, and uneven sizes mean some are dry while others come out raw.
- Don’t crowd the skillet. Brown in two batches if your pan is small — crowded meatballs steam instead of sear, and you lose the crust that adds depth.
- Resist the urge to flip too early. Let each side develop a real golden color, about 90 seconds before turning. Premature flipping tears the surface and pulls off the crust you’re trying to build.
- Don’t skip the simmer in sauce. Even if they look cooked through after browning, the slow finish in marinara is where the flavor exchange happens.
- What NOT to do: don’t reach for extra-lean ground beef alone — a 93/7 or 96/4 single-meat blend will give you dry, sawdust-textured meatballs no matter how careful you are with the panade. The 90/10 beef in this recipe works because it’s paired with fattier ground pork, which brings the moisture and richness back.
Creative twists
Once you’ve got the base nailed, the recipe opens up. One favorite detour: tuck a cube of mozzarella inside each one for a cheesy stuffed version.
Swap the pork for ground turkey or chicken if you’re aiming lighter — you’ll lose some richness, so bump the Parmesan to 3/4 cup and add a tablespoon of olive oil directly to the mix to compensate. Spicy version? Add 1/2 teaspoon of red pepper flakes to the meatball mix and a tablespoon of minced Calabrian chiles to the sauce.
For a baked option, skip the browning step entirely. Place the rolled meatballs on a parchment-lined sheet pan, brush with olive oil, and bake at 400°F for 18 minutes. Then drop them into the simmering marinara to finish. Slightly less flavorful than searing, but easier when you’re cooking for a crowd.
Gluten-free version: swap the breadcrumbs for almond flour mixed with a tablespoon of olive oil to mimic the soaked panade. The texture is denser but still tender, and the flavor holds up. For a dairy-free version, replace the Parmesan with 1/4 cup of nutritional yeast plus an extra pinch of salt.
Common questions
What is the secret to tender, juicy Italian meatballs?
The secret is the panade — breadcrumbs soaked in milk before being mixed into the meat. The starches absorb the liquid and create tiny pockets of moisture throughout the meatball that steam from the inside as they cook. Combined with a gentle mix (never knead the meat) and a balanced fat ratio — that’s why this recipe pairs 90/10 beef with fattier ground pork, so the meatballs come out rich without feeling greasy — the panade is what keeps the texture pillowy instead of dense.
How long do you cook Italian meatballs in sauce?
Twenty minutes covered, over a gentle simmer. The meatballs go in already browned but not cooked through, and that final 20 minutes lets them finish cooking while soaking up the marinara. Push it longer than 30 minutes and they start to dry out as the sauce reduces. The sweet spot is just long enough to read 160°F internally on an instant-read thermometer.
Should you use fresh or dried breadcrumbs for meatballs?
Fresh, hands down. Dried breadcrumbs absorb less liquid and end up tough; they were designed to coat fried foods, not soften inside meat. Tear up two slices of soft white sandwich bread (crust removed) and pulse them quickly in a food processor, or just crumble them by hand. The fresh texture is what makes the panade work.
What size should Italian meatballs be?
About 3 tablespoons of mixture per meatball, which gives you roughly golf-ball-sized rounds. This size cooks evenly in the time the recipe specifies — bigger ones risk being raw in the middle when the sauce stage ends, smaller ones dry out. If you’re serving them as appetizers, drop to 1 tablespoon and cut the simmer to 12 minutes.
Can you freeze homemade Italian meatballs?
Yes, and they freeze brilliantly. You can freeze them raw (rolled and frozen on a sheet pan first, then bagged) for up to 3 months — no thawing needed, just brown straight from frozen and add 5 extra minutes to the sauce simmer. Or freeze them already cooked and saucy for up to 3 months as well; thaw in the fridge overnight and reheat covered on the stovetop with a splash of water.
That’s it — a real italian meatballs recipe that earns its place at any table, weeknight or Sunday. Try it once and let the simmer do its quiet work; you’ll see why the dish has outlasted trends for a hundred years. If you make it, leave a comment with what you served it over and any variations you tried — I read every one.