Lopez (6-14) scattered eight hits over his stint and relievers Aaron Heilman and Juan Gutierrez, who earned his 10th save, each pitched a perfect inning of relief in the win. It was the first victory for Lopez since July 8.
Arizona parlayed two walks and three hits -- half their game total -- into three runs in the fifth inning. Cincinnati starter Edinson Volquez (3-3) walked two but those were the first two Arizona batters in the fifth.
Geraldo Parra then doubled in one run and, one out later, Stephen Drew singled in another. Kelly Johnson completed the rally with an RBI base hit that drove in Parra.
Drew Stubbs singled to open the Cincinnati first and scored two outs later on Jonny Gomes' 23rd double of the season.