Cook the spaghetti in a large pot of well-salted boiling water according to package instructions until cooked (but still firm when bitten). Drain and set aside.
In a large bowl, mix breadcrumbs and milk; let soak for 1–2 minutes.
Add minced beef, chopped onion, garlic, egg, Parmesan, parsley, Italian seasoning, salt, and pepper. Mix gently until just combined.
Shape the mixture into medium-sized meatballs.
Heat 2 tablespoons olive oil in a large skillet over medium heat. Brown the meatballs on all sides, then remove and set aside.
In the same skillet, heat 1 tablespoon olive oil. Add onion and cook until softened, about 3–4 minutes. Stir in garlic and cook for 30 seconds.
Add crushed tomatoes, oregano, sugar (if using), salt, and pepper. Bring to a gentle simmer.
Return meatballs to the sauce, cover, and simmer for 15–20 minutes until cooked through and tender.
Serve meatballs and sauce over cooked spaghetti. Garnish with extra Parmesan and fresh parsley if desired.