Preheat the oven to 425°F and line a baking sheet with parchment paper.
Place the bread crumbs in a large bowl and pour the milk over it. Allow it to soak until fully softened and absorbed. This keeps the meatballs moist and tender.
Combine the ground meat, onion, garlic, Parmesan, parsley, salt, pepper, and egg. Mix gently with your hands just until combined, keeping the texture light.
Shape the mixture into golf ball-sized portions and place them on the prepared baking sheet.
Bake for 12 to 15 minutes until lightly browned and mostly cooked through. Remove from the oven and set aside.
For The Pasta
In a large saucepan, heat olive oil over medium heat, then add the diced onion. Cook until softened and translucent. Stir in the grated carrot and diced red pepper and cook for several minutes until tender.
Add the garlic, followed by the tomato paste. Cook the paste directly in the oil and vegetables for 2 to 3 minutes, stirring constantly, until it darkens and smells rich and concentrated.
Pour in the tomato sauce and season with salt, pepper, and red pepper flakes (if you are using). Stir well and bring to a gentle simmer. Stir in torn basil, then return the browned meatballs to the pot, cover partially, and cook for about twenty minutes, until cooked through and the flavors have blended.
While you cook your meatballs, bring a large pot of salted water to a boil and cook the spaghetti until al dente (about 5-7 minutes). Reserve about one cup of pasta water before draining.
Serve the spaghetti topped with sauce and meatballs, adding reserved pasta water as needed to loosen the sauce to your desired consistency.
Notes
Soak the breadcrumbs properly: This is key to soft, tender meatballs.
Mix gently: Overmixing makes meatballs dense.
Cook tomato paste fully: It should darken and smell rich.
Simmer, don’t rush: Time helps the sauce develop flavour.
Use pasta water to finish: It helps the sauce cling beautifully.