Preheat oven to 400°F. Line a baking sheet with parchment paper.
In a large bowl, combine the ground beef, breadcrumbs, milk, eggs, Parmesan, garlic, parsley, Italian seasoning, salt, and pepper. Mix gently until just combined.
Roll into approximately 24 evenly sized meatballs and arrange on the prepared baking sheet. Bake for 18–20 minutes, until lightly browned.
While the meatballs bake, heat olive oil in a large sauté pan or Dutch oven over medium heat.
Add onion and cook for 5–6 minutes until softened.Stir in garlic and cook for 30 seconds.
Add tomato paste and cook for 1–2 minutes.
Stir in crushed tomatoes, tomato sauce, Italian seasoning, basil, salt, pepper, crushed red pepper flakes, and sugar if desired.
Simmer for 10 minutes.
Add the baked meatballs to the sauce and simmer for an additional 20–30 minutes.
Meanwhile, cook spaghetti in generously salted boiling water until al dente. Reserve 1 cup pasta water before draining.
Toss spaghetti with the sauce or serve the sauce and meatballs over the pasta.Garnish with Parmesan, parsley, and basil before serving.