He finished his three-hitter by blowing a called third strike past Kosuke Fukudome.
"It was easy with him today," said Diamondbacks catcher Chris Snyder, who hit his first homer. "No matter what I put down, he was throwing it effectively."
Haren (2-3) tossed his seventh complete game, his second with Arizona.
It took Arizona almost a month to win consecutive games. Now that they've done it, the Diamondbacks are hoping to go on a roll.
"Obviously, we'd like to at least triple that," manager Bob Melvin said.
At 8-11, the Diamondbacks have failed to take advantage of a schedule that had them play 18 of their first 21 games at home. But they seemed more relaxed as they hammered the Cubs, who had a large and vocal contingent of fans in the Chase Field crowd of 29,471.
"Today was just nice, because I looked around in the seventh, eighth inning, and guys were smiling on the bench, having fun," Haren said. "It's a feeling I don't think we really had the whole year."
Haren had a bad feeling when Soriano led off the game by hitting a 1-1 pitch into the front row of the second deck in left. It was his 52nd leadoff homer, third all-time behind Rickey Henderson (81) and Craig Biggio (53).
"You just try to start the game over at that point," Haren said. "I gave up the run in the first, and once I was able to put up two or three zeros in a row, I felt like we were right there."
Haren retired 22 of the next 23 batters, with only a single by pitcher Ted Lilly (2-2) breaking up the string of outs. Mike Fontenot ended a 10-pitch battle in the eighth by hitting a 3-2 pitch deep into the seats in right.
Taking advantage of Chicago's aggressive lineup, Haren struck out 10 and didn't walk a batter.
"Haren's a pretty good pitcher," Chicago manager Lou Piniella said. "He's been pitching real well this year, and today he had exceptional stuff."
Haren broke up a 1-all tie in the fourth. Batting with two outs and the bases loaded, he hit a chopper down the left field line to score two runs.
"I rolled over a slider down the middle," Haren said. "I've hit some balls real hard this year that have been outs, actually. You know, baseball evens itself out a lot of times, and that might be the case right there."
Chris Young followed with a two-run double to give Arizona a 5-1 lead.
It was an unusual outburst for Arizona, which entered with a major league-worst .225 batting average and .298 on-base percentage, and had more strikeouts (136) than hits (133).
Haren wasn't used to such support as the Diamondbacks had a total of three runs in his first four starts.
Lilly had trouble commanding his breaking ball. When the Diamondbacks hit the lefty, they hit him hard, with a homer and four doubles.
Lilly left after five innings, allowing five runs and six hits, walking four and striking out three.
"I felt good," he said. "I really don't have any excuses. I'm not going to blame the umpire or anyone else. I'm going to have to be accountable."
The Diamondbacks stole five bases -- one fewer than they swiped in their first 18 games combined. ... The Cubs had three errors and fell to 0-7 when they commit an error. ... Cubs RHP Carlos Marmol, who has a sprained left knee, threw in the bullpen before the game. "He was absolutely perfect," Piniella said. "We just want to make sure there's no discomfort tomorrow, or any swelling, and if there isn't he'll be able to go [Tuesday] night." ... Cubs 1B Derrek Lee sat out with neck spasms.