The loss ended Arizona's eight-game winning streak.
Antonio Alfonseca (2-3) pitched a scoreless ninth.
Sosa and Mark Bellhorn collided at full speed when chasing a fly ball hit by Damian Miller in the sixth inning. Sosa held up at the last second, trying to avoid the collision. The ball nicked Bellhorn's mitt in fair territory as both of their shoulders collided. Both Sosa and Bellhorn were down for several minutes, while Miller scored on an inside-the-park home run, giving Arizona a 2-1 lead in the sixth.
Both Sosa and Bellhorn remained in the game for the rest of the inning before being removed with headaches.
The Cubs tied it in the eighth. Bill Mueller drew a walk from Arizona reliever Mike Fetters, advanced to third on a wild pitch and a passed ball, and then scored on Fred McGriff's sacrifice fly off Mike Myers.
Cubs interim manager Bruce Kimm was ejected in the seventh inning after arguing with plate umpire Andy Fletcher.
Diamondbacks starter Rick Helling retired nine consecutive batters between the second and fourth inning, striking out five in a row during the span.
Helling went seven innings, giving up five hits _ one run and seven strikeouts. He walked one.
In the first, Cubs starter Matt Clement walked Quinton McCracken, hit Junior Spivey with a pitch and walked Steve Finley on four straight pitches, loading the bases. Jay Bell followed with a grounder to shortstop, but Gonzalez fumbled the ball and was charged with an error, allowing McCracken to score.
Mark Bellhorn doubled in the first and McGriff hit an RBI single to tie the game at one.
Junior Spivey got the Diamondbacks' first hit in the fifth inning with a single to left.
Clement pitched 5 1-3 innings, giving up two runs on four hits. He struck out 10 and walked three. He also hit two batters with pitches.
Notes: Diamondbacks OF Luis Gonzalez was held out of the lineup for a fifth consecutive game with a strained right rib cage. ... Mark Grace had a 13-pitch at-bat before striking out in the fifth inning. ... Gonzalez extended his hitting streak to 13 games on a single in the fifth inning. Sosa went 0-for-3, snapping his 12-game hitting streak.