In a large skillet, heat the olive oil over medium heat. Add the diced onion and sauté until translucent, about 5 minutes. Stir in the minced garlic and cook for an additional 1 minute until fragrant.
Add the ground beef to the skillet, breaking it apart with a spoon. Cook until browned, about 5-7 minutes. Drain any excess fat.
Stir in the crushed tomatoes, tomato paste, oregano, basil, sugar, salt, and pepper. Bring the sauce to a simmer.
Reduce the heat to low and let the sauce simmer for at least 20 minutes, stirring occasionally. For a richer flavor, simmer for up to 1 hour.
Taste and adjust seasoning if necessary. If using, stir in the fresh parsley just before serving.
Serve over cooked spaghetti and top with grated Parmesan cheese if desired.