Italian Meatballs
Tender, juicy meatballs made from equal parts beef and pork, bound with a milk-soaked bread panade, Parmigiano, garlic, and parsley, then browned and gently simmered in a bright crushed-tomato sauce. The panade keeps the interior soft while browning builds savory depth, and finishing them in the sauce lets the meatballs stay moist while flavoring the sauce as they cook. It is honest, weeknight-friendly comfort food that tastes like it took all day.
Soak fresh breadcrumbs in milk to make a panade, then mix it gently into equal parts ground beef and pork with grated Parmigiano, egg, garlic, and parsley, handling the meat as little as possible so the meatballs stay tender. Roll into about 24 golf-ball-sized rounds and chill briefly to firm up, then brown them on all sides in olive oil in a Dutch oven and set aside. Build a quick sauce in the same pot with onion, garlic, tomato paste, and crushed tomatoes, return the meatballs, and simmer gently for about 25 minutes until cooked through and infused with sauce; finish with torn basil and let them rest a few minutes before serving over pasta or with crusty bread.
- Use a milk-soaked bread panade and mix with your fingertips just until combined; overworking the meat makes tough, dense meatballs.
- Chill the shaped meatballs 15 minutes so they hold their round shape and brown without breaking apart.
- Finish cooking them in the simmering sauce rather than the skillet so they stay juicy and flavor the sauce as they braise.
Equipment
- Large mixing bowl
- Heavy Dutch oven or large pot
- Box grater
- Measuring cups and spoons
- Wooden spoon
Ingrediënten
For the meatballs
- 450 g ground beef (80/20 chuck)
- 450 g ground pork
- 60 g fresh breadcrumbs, from day-old crustless bread
- 120 ml whole milk
- 50 g Parmigiano-Reggiano, finely grated, plus more to serve
- large eggs
- garlic cloves, minced
- 15 g fresh parsley, finely chopped
- 9 g fine sea salt
- 2 g black pepper, freshly ground
- red pepper flakes, optional
For the tomato sauce
- 30 ml olive oil
- yellow onion, finely diced
- garlic cloves, thinly sliced
- 30 g tomato paste
- 800 g crushed tomatoes
- dried oregano
- 10 g fresh basil leaves, torn
- fine sea salt, to taste
- sugar, optional, to balance acidity
Bereiding
- STAP01
In a large mixing bowl, stir together the fresh breadcrumbs and milk until evenly moistened. Let sit until the bread absorbs the milk and turns to a soft paste. This mash is what keeps the meatballs tender rather than dense.
- STAP02
To the soaked bread, add the ground beef, ground pork, grated Parmigiano, eggs, minced garlic, parsley, salt, black pepper, and red pepper flakes if using. Mix with your fingertips just until everything is evenly combined, about 30 seconds; stop as soon as it comes together to avoid toughness.
- STAP03
Roll the mixture into about 24 golf-ball-sized meatballs, roughly 40 g (1 1/2 inches) each, setting them on a plate or tray. Refrigerate so they firm up and hold their shape during browning.
- STAP04
Heat the olive oil in a heavy Dutch oven over medium-high heat. Working in two batches so they aren't crowded, brown the meatballs on all sides until deeply colored but not cooked through, turning gently. Transfer to a plate; they will finish in the sauce.
- STAP05
Lower the heat to medium and add the onion to the same pot, scraping up the browned bits. Cook until softened, then stir in the sliced garlic and tomato paste for 1 minute until fragrant. Pour in the crushed tomatoes, oregano, salt, and a pinch of sugar, and bring to a gentle simmer.
- STAP06
Nestle the browned meatballs and any resting juices into the sauce. Cover partially and simmer gently, turning once halfway through, until the meatballs are cooked through (74°C / 165°F at the center) and the sauce has thickened.
- STAP07
Stir in the torn basil and taste the sauce, adjusting salt as needed. Remove from the heat and let the meatballs rest a few minutes so they reabsorb their juices. Serve hot with extra grated Parmigiano.
Make ahead
Shape the raw meatballs up to a day ahead and keep them covered in the fridge until you are ready to brown. For longer storage, freeze the browned (or fully cooked) meatballs in sauce for up to 3 months, then thaw overnight in the fridge and reheat gently.
Storage
Refrigerate the meatballs in their sauce in an airtight container for up to 4 days. Reheat gently on the stovetop over low heat with a splash of water or stock to loosen the sauce, stirring occasionally until warmed through.
Variations
Oven-baked meatballs
Skip stovetop browning and roast the shaped meatballs on a parchment-lined sheet at 200°C (400°F) for 18-20 minutes until browned, then simmer in the sauce for 10 minutes. Easier for large batches and hands-off.
Lighter turkey and chicken
Replace the beef and pork with 900 g of ground turkey and chicken thigh. Add an extra 1 tablespoon of olive oil to the mix for moisture and cook to 74°C (165°F); the meatballs will be lighter but still juicy thanks to the panade.
Gluten-free
Swap the fresh breadcrumbs for gluten-free breadcrumbs (or 40 g of gluten-free rolled oats) soaked in the milk as usual, and confirm your canned tomatoes are certified gluten-free. Serve over gluten-free pasta or polenta.
Serve with
Nutrition per serving
Nutrition values are estimates based on the metric measurements. Adjust as needed.
Veelgestelde vragen
What is the best meat to use for an italian meatball recipe?
Equal parts ground beef and pork is the classic choice and what this italian meatball recipe is built around: the beef brings flavor and structure while the pork adds fat and tenderness. If you want to use only beef, choose an 80/20 blend so the meatballs don't dry out during simmering.
Why do you soak the bread in milk?
That milk-soaked bread is called a panade, and it is the single biggest reason these meatballs come out soft. The starch and moisture trap fat and juices as the meat cooks, keeping the interior tender instead of dense and rubbery. Fresh breadcrumbs work better than dry here because they absorb more milk.
Can I bake the meatballs instead of browning them on the stovetop?
Yes. Arrange the shaped meatballs on a parchment-lined sheet and roast at 200°C (400°F) for 18-20 minutes until browned, then transfer them into the simmering sauce for the last 10 minutes. Baking is tidier and easier when you're doubling the batch.
Why did my meatballs turn out tough?
Tough meatballs almost always come from overmixing or packing them too tightly. Mix just until the ingredients are combined and roll each ball with a light hand so they hold together without being compressed. Simmering gently rather than boiling also keeps them tender.
Do I have to cook the meatballs in the sauce?
You don't have to, but finishing them in the sauce is what gives this dish its character. The meatballs stay moist as they gently braise, and they release savory flavor into the tomato sauce at the same time. If you cook them fully in the oven, still let them rest in the warm sauce for 10 minutes before serving.
Cooked this? Rate it.
Real ratings from real cooks. We only show a score once enough of you have weighed in — no fabricated stars.