Make the meatball mixture: In a large bowl, combine ground beef, onion, parsley, garlic, egg, breadcrumbs, paprika, salt, pepper, and Parmesan. Mix gently with your hands until everything is just combined.
Shape the meatballs: Roll into balls about 1–1.5 inches wide. Place on a plate.
Brown the meatballs: Heat a drizzle of olive oil in a large deep skillet or Dutch oven over medium heat. Sear meatballs for about 1 minute per side until lightly browned (they don’t need to be fully cooked). Remove and set aside.
Make the sauce: In the same pan, add olive oil (if needed). Sauté onion for 4–5 minutes until soft and golden. Add garlic and chili and cook another 2–3 minutes until fragrant. Stir in tomato sauce, water, tomato paste, basil, paprika, salt, and pepper. Mix well.
Simmer: Bring the sauce to a boil, then lower the heat to a gentle simmer. Return the meatballs to the pan, cover, and cook for 20-30 minutes, stirring occasionally, until the sauce thickens and the meatballs are fully cooked.
Serve: Garnish with extra basil or Parmesan. Serve over spaghetti, rice, mashed potatoes, or with crusty bread.
Video
Notes
Breadcrumb tip: For softer meatballs, soak breadcrumbs in 2–3 tablespoons of milk before mixing.
Meat choice: A beef + pork mix gives juicier results. You can also use ground turkey or chicken for a lighter version.
Don’t overmix: Mix just until combined, overmixing makes meatballs tough.
Cooking method: Instead of frying, you can bake the meatballs at 400°F (200°C) for 12–15 minutes, then add them to the sauce.
Sauce thickness: If the sauce gets too thick, add a splash of water. If too thin, uncover and simmer longer.
Storage: Store leftovers in an airtight container in the fridge for up to 4 days or freeze for up to 2 months. Reheat gently on the stove.
Serving ideas: Classic with spaghetti, but also great with rice, mashed potatoes, or stuffed into crusty bread for a meatball sub.
Spice level: Omit chili for a milder sauce, or add red pepper flakes for extra heat.
Add veggies: For extra nutrition and moisture, finely grate or mince up to ½ cup of vegetables such as zucchini, carrot, or bell pepper. Squeeze out excess liquid before mixing in. This lightens the texture and sneaks in extra flavor and nutrients.
Make ahead: Meatballs can be shaped and refrigerated (covered) up to 24 hours in advance, or frozen raw and cooked later.
Servings & Yield: This recipe makes about 18 medium meatballs and serves 4–6 people, depending on portion size.
Freezer tip: Freeze raw meatballs on a tray, then transfer to a bag, this prevents sticking and allows cooking straight from frozen.