Bring a large pot of salted water to a boil. Cook pasta according to package instructions until al dente. Reserve ½ cup of pasta cooking water before draining the sauce.
While pasta cooks, dice bacon and cook it in a skillet over medium heat until crisp. Remove bacon and set aside. Sauté onions and garlic in the remaining bacon fat until soft and fragrant.
Lower the heat and pour in heavy cream, stirring to combine. Add Parmesan gradually, whisking until the sauce is smooth and silky. Season with salt and pepper, then stir in the reserved bacon.
Add the drained pasta to the skillet, tossing to coat evenly. Pour in some reserved pasta water if the sauce needs thinning. Serve immediately with extra Parmesan sprinkled on top.