PHOENIX -- Martin Prado joked that he had better be careful or he'll get a reputation as a hothead.
"I was trying to make it to a thousand," he said. "I came up short."
Manager Kirk Gibson was also tossed after he came out to argue following Prado's ejection.
"Prad's not a hothead," Gibson said. "He said something I guess the home plate umpire didn't like."
Paul Goldschmidt homered and Didi Gregorius had a pair of RBI singles for Arizona. Anthony Rizzo homered twice for the Cubs.
Rizzo moved into a tie with Miami's Giancarlo Stanton for the NL home run lead at 22 with his sixth career multi-homer game, second this season. He homered twice at Milwaukee on May 31.
Eury De La Rosa (1-0) gave up a run in one inning and got the win. Brian Schlitter (2-3) allowed a run in two-thirds of an inning for the loss.
Prado was thrown out when he said something as he ran past plate umpire Cory Blaser after grounding out in the eighth. He had to be restrained by teammates after he was tossed.
"It's part of the game. There's a lot of emotions," Prado said. "I think I just overreacted, but the most important thing is we won the game. Guys were messing with me and said `You have to get ejected every day.'"
Catcher Miguel Montero's throwing error put a runner on third with one out in the ninth, but Addison Reed got out of it, getting Ryan Sweeney to pop out and fanning Welington Castillo for his 22nd save in 27 chances.
The Diamondbacks' Trevor Cahill, in his first start since April 13, allowed three runs on four hits in five innings.
The left-handed batting Gregorius, 2 for 20 against lefties this season to that point, singled off left-hander Zac Rosscup to bring home what proved to be the deciding run in Arizona's three-run sixth.
"The at-bat of the game," Prado said.
Rizzo hit a two-run homer off Cahill far over the swimming pool area in right field in Chicago's three-run fourth. He added a booming solo shot to center off De La Rosa in the sixth.
The last player voted by fans onto the NL squad at the All-Star game, Rizzo is one homer shy of his total for last season.
"That is cool," he said. " ... You want to keep on having good at-bats, not trying to hit home runs, just trying to hit the ball hard. `'
Ender Enciarte, just in the game as a defensive replacement in center, ran down Rizzo's shot to deep left-center in the eighth. Gibson said David Peralta, shifted from center to left, probably wouldn't have had the speed to get to the ball.
Goldschmidt's 17th home run was an opposite-field solo shot that barely cleared the fence in right and ended the night for Cubs starter Edwin Jackson.
Cubs manager Rick Renteria said Jackson "kept us in the ballgame and Rizz had an All-Star night, two homers.
"We didn't get a whole lot more after that, but even in the end we had a chance, but weren't able to get that tying run in there," Renteria added.
Cahill was demoted from the rotation to the bullpen after going 0-4 with a 9.17 ERA in his first four starts. The right-hander was designated for assignment on June 9, making one start for Class A Visalia and six for Triple-A Reno.
"It felt good," he said. "I'm competing at the highest level, starting, which I've done my whole life. It was fun to be back out there and know I had the ball for as far as I could go."
Arismendy Alcantara, in his sixth game since being recalled from Triple-A Iowa, stole second twice. ... In the second game of the series Saturday night, the Cubs send Travis Wood (7-8, 4.96 ERA) to the mound against the Diamondbacks' Wade Miley (5-6, 4.18).