Bring a large pot of salted water to a boil. Add spaghetti and cook according to package instructions until al dente. Drain and set aside.
In a large skillet, heat olive oil over medium heat. Add chopped bacon and cook until crispy, about 5 to 7 minutes. Remove bacon and set aside on a paper towel to drain.
In the same skillet, add onions and garlic. Cook until onions are translucent, about 3 to 4 minutes.
Stir in crushed tomatoes and heavy cream. Bring to a simmer and let cook for 5 minutes, stirring occasionally.
Add cooked spaghetti to the skillet. Toss well to coat the pasta with the sauce.
Stir in grated Parmesan cheese and cooked bacon. Season with salt and pepper to taste.
Garnish with chopped fresh parsley and serve hot.