He hit a solo home run in the first, doubled in the fifth and tripled in two runs in the sixth. He clinched the cycle, to the cheers of what was left of the crowd, with a line drive to right field on an 0-1 pitch from right-hander Sergio Romo.
Johnson joined Bengie Molina of the Texas Rangers and Jody Gerut of the Milwaukee Brewers as players to hit for the cycle this season. It was the fourth cycle by an Arizona player in the franchise's 13-year history.
Johnson reached base a fifth time when he was hit by a pitch in the third.