Preheat a large skillet over medium heat and add olive oil.
In a large mixing bowl, combine ground beef, breadcrumbs, Parmesan, egg, garlic, Italian seasoning, salt, pepper, and parsley. Mix until just combined.
Roll the mixture into 1-inch meatballs and cook them in the skillet until browned on all sides, about 6-8 minutes. Remove and set aside.
In the same skillet, melt butter over medium heat. Add the onion and cook for 3 minutes until softened, then add garlic and cook for another 30 seconds.
Add crushed tomatoes, basil, oregano, salt, black pepper, and red pepper flakes (if using). Simmer for 5-7 minutes.
Lower the heat and stir in heavy cream and Parmesan cheese, simmering for an additional 2 minutes until smooth.
Return the meatballs to the skillet, nestling them in the sauce. Let them simmer in the sauce for 5 minutes.
Meanwhile, cook the spaghetti in a large pot of salted boiling water according to package instructions until al dente.
Add the cooked spaghetti to the skillet and toss to coat the pasta and meatballs in the creamy sauce. Add reserved pasta water if needed to loosen the sauce.
Garnish with fresh basil or parsley and extra Parmesan. Serve hot.