Homemade Meatballs Recipe
Veal, Pork, Beef, Mozzarella, tomato Sauce
Was this page helpful?
Help improve this recipe for others.
Send this recipe to your inbox.
We'll email it straight to you - plus weekly cooking inspiration.
Ingredients
Some product links may be affiliates. If you buy through them, you're supporting the site and Pekin may earn a commission at no extra cost to you.
Meatballs
Tomato Sauce
To Serve
Method
Meatballs
Place breadcrumbs in a small bowl and pour the milk over them. Stir lightly and let sit for 5 minutes until absorbed and softened.
Combine meatball ingredients
In a large mixing bowl, add ground veal, ground pork, and ground beef. Add the soaked breadcrumbs, grated Parmesan, minced garlic, grated or very finely minced half onion, chopped parsley, dried oregano, egg, salt, and pepper. Using your hands or a spoon, gently mix until just combined — avoid overworking to keep meatballs tender. Fold in the diced or grated fresh mozzarella so it’s evenly distributed but not completely melted.
Shape meatballs
With damp hands, portion the mixture into 24 equal meatballs (roughly 1.25 inch / 3 cm diameter, about 40-45 g each). Roll gently to form smooth spheres, compressing lightly to remove large air pockets.
Brown the meatballs
Heat 3 tablespoons olive oil in a large heavy skillet over medium-high heat. When shimmering, add meatballs in a single layer without crowding (work in batches if necessary). Brown on all sides, turning every 2–3 minutes, until nicely caramelized but not cooked through, about 8–10 minutes total per batch. Transfer browned meatballs to a plate.
Finish in sauce (option 1: stovetop)
After preparing the tomato sauce (see next section), gently nestle the browned meatballs into the simmering sauce. Cover partially and simmer over low heat for 15–20 minutes until the meatballs are cooked through (internal temperature 72°C / 160°F) and mozzarella inside is melted.
Finish in oven (option 2: baked)
Preheat oven to 180°C (350°F). Place browned meatballs in a baking dish, spoon sauce over to cover halfway, cover with foil and bake 18–22 minutes until cooked through. For a gratin finish, remove foil, top with additional shredded mozzarella and bake uncovered 5–7 minutes until cheese melts and browns slightly.
Tomato Sauce
Build the sauce
Stir in the tomato paste and cook 1 minute to remove raw edge. Add the crushed tomatoes, dried basil, dried oregano, sugar (if using), salt, and pepper. Bring to a gentle simmer.
Simmer
Lower heat to maintain a gentle simmer and cook, uncovered or partially covered, for 20–30 minutes to concentrate flavors, stirring occasionally. If the sauce reduces too much, add a splash of water. Taste and adjust seasoning.
Finish
Stir in torn fresh basil leaves in the last 2 minutes of cooking. Keep sauce warm and at a gentle simmer for finishing the meatballs.
To Serve
Spoon a bed of sauce on each plate or serve family-style with sauce in a shallow serving dish. Nestle meatballs into the sauce, sprinkle with grated Parmesan and scatter fresh basil leaves on top. Serve with crusty bread, pasta, or polenta as desired.
Leftovers: cool to room temperature, store meatballs and sauce together in an airtight container in the refrigerator for up to 3 days or freeze up to 3 months.