Bring a large pot of salted water to boil and cook pasta according to package directions. Drain and set aside, reserving ½ cup pasta water.
Heat olive oil in a large skillet over medium-high heat. Add ground beef and cook for 5-7 minutes, breaking it into small pieces, until browned. Drain excess fat.
Add chopped onion and cook for 2 minutes. Stir in garlic and cook for 30 seconds until fragrant.
Pour in diced tomatoes with juices. Add Italian seasoning, salt, and pepper. Simmer for 3-4 minutes.
Reduce heat to medium and stir in heavy cream. Bring to a gentle simmer without boiling.
Add mozzarella and Parmesan cheese, stirring constantly until melted and smooth. Add reserved pasta water if needed for consistency.
Add cooked pasta to the sauce and toss gently until well coated.
Transfer to serving dish and garnish with fresh parsley. Serve immediately.