Cook diced bacon in a skillet over medium heat until crispy, 5-6 minutes. Drain on paper towels.
Whisk egg yolks, lemon zest, black pepper, Pecorino Romano, and Parmigiano-Reggiano in a large bowl until smooth, about 1 minute.
Boil salted water and cook spaghetti to al dente per package directions. Reserve 1 cup pasta water before draining.
Add hot drained pasta to egg mixture with 1/4 cup pasta water. Toss vigorously for 1 minute to coat without scrambling.
Add bacon and toss. Add more pasta water as needed for silky consistency.
Serve topped with extra lemon zest and grated cheese.