Michael Lorenzen (1-1) got his first MLB win after tossing six-plus innings and allowing one run on three hits and three walks with four strikeouts.
Jeff Locke (2-2) took the loss in his seven-inning effort, yielding four runs on seven hits and striking out five.
Starling Marte homered for the Pirates, who have lost four straight.
After each pitcher tossed a 1-2-3 first inning, Frazier opened the second with a solo home run to right-center field. Singles by Brandon Phillips and Jay Bruce, and a walk to Kristopher Negron loaded the bases. Locke then traded an additional run for Brayan Pena's double play before Lorenzen struck out to end the inning.
Marte got a run back on his opposite-field solo shot in the home second.
Locke's struggles continued in the third inning. After Billy Hamilton reached with a single, Byrd homered to left field to extend Cincinnati's lead to 4-1.
Lorenzen suddenly ran into trouble in the fourth. He allowed a two-out single to Neil Walker before walking Marte and Pedro Alvarez to load the bases, but he worked out of the jam with an inning-ending lineout from Jung Ho Kang.
The Reds were poised to add to their lead in the sixth after two batters reached to open the inning, but Locke worked out of trouble to keep Pittsburgh's deficit at three.
After Lorenzen got into the bases-loaded jam, he retired seven of the next eight. Alvarez singled and Kang walked to bring the tying run to the plate with no outs in the seventh. Bryan Price summoned Jumbo Diaz from the bullpen.
Diaz was able to get out of the jam. Jordy Mercer lined out on the first pitch, and pinch hitter Corey Hart grounded into a double play to end the inning.
In the ninth, Byrd followed an RBI single from Hamilton with a two-run double to right to account for the final margin.
Cincinnati shortstop Zack Cozart was not in the starting lineup after bruising a finger on Sunday ... Josh Harrison, who is hitless in his last 10 at-bats, did not start for Pittsburgh.