Bring a large pot of salted water to a boil.
Add spaghetti and cook until al dente (8-10 mins). Reserve ½ cup pasta water, then drain.
Heat olive oil in a large skillet over medium heat.
Sauté onions until soft (~3 mins), then add garlic and cook for 30 seconds.
Add ground beef, breaking it apart, and cook until browned (~5 mins).
Stir in crushed tomatoes, tomato paste, sugar, oregano, basil, red pepper flakes, salt, and pepper.
Reduce heat to low and simmer for 10-15 mins, stirring occasionally.
Toss cooked spaghetti into the sauce, adding reserved pasta water as needed to loosen.
Stir in fresh herbs and Parmesan cheese.
Garnish with extra Parmesan and fresh basil. Enjoy hot with garlic bread!