Jack Wilson hit a game-tying sacrifice fly in the ninth inning and a game-winning sacrifice fly in the 15th late Tuesday night for the win, snapping the Cubs' winning streak at five games.
"We had a plethora of wasted opportunities," Cubs manager Lou Piniella said. "That eighth inning, I thought we'd put the game away."
The eighth wasn't the only missed chance. The Cubs had runners at first and second with one out in the 10th, but Matt Murton lined out to left and the runner at second was out on another double play.
"I didn't execute a couple times out there, that probably cost us," Jones said. "We couldn't push that run across. We didn't do it, and they did a better job of executing at the end than we did."
With the game tied at 3 against Neal Cotts (0-1) in the 15th, Ronny Paulino singled to lead off and advanced on Jose Bautista's sacrifice. Lee fielded the ball and threw to second, thinking he could get the slower Paulino, but everyone was safe.
Paulino then broke for third, and catcher Michael Barrett's throw ricocheted off third baseman Aramis Ramirez for an error. Paulino was safe on the steal, and Bautista advanced on Barrett's error. One out later, Ryan Doumit was hit by a pitch to load the bases for Wilson, who flew out to left.
"It was a bad game for me, defensively," Lee said, "and offensively, I had a chance to win the game. I made some horrible defensive plays. I was just bad tonight."
Lee did single to lead off the eighth, and has reached base safely in all 30 games this year. That wasn't enough. He went from batting a National League-leading .414 to .398.
The Cubs had been unbeaten in May, and now have played five extra-inning games in the first 30 games this year for the first time since 2000.
Piniella gambled. The Pirates had two outs and a runner at first in the 11th when Piniella had Rocky Cherry intentionally walk Freddy Sanchez to face Jason Bay. Bay smacked the first pitch to left, and Soriano fired a perfect strike home to get the runner and end the inning.
"He goes for the win that night -- he lives for today," Lee said of the Cubs manager. "I like that."
The Pirates tied the game at 3 on Jack Wilson's sacrifice fly in the ninth against Ryan Dempster, who had not blown a save in seven opportunities this season.
"You have to tip your hat to Jack Wilson," Dempster said. "I made a good pitch right there, and he got enough of it to get it out to the outfield and tie the game up."
The Cubs beat the Washington Nationals in 10 innings Sunday, and this marks the second time this season the Cubs have played back-to-back extra-inning games; they also did so April 22-23.
"It was a tough game to lose," Dempster said. "It seemed like we both had our chances to put the game away a lot sooner than they did. We have to get some rest tonight and come back tomorrow and be ready to play."
The Cubs had taken a 3-2 lead in the seventh when Cesar Izturis reached on a fielding error by Wilson and advanced on pinch-hitter Daryle Ward's single. Izturis scored on Soriano's single, and Ward was safe at second despite a close throw. Pirates manager Jim Tracy argued the call at second, and was ejected by first base umpire Tim Hallion.
The Cubs wasted a quality start by Ted Lilly, who gave up two runs on seven hits over seven innings. A lot of players were shaking their heads after the game.
"There were balls right at me, I threw balls away, missed pitches at the plate," Lee said. "Hopefully, I wake up and this is forgotten. Just turn the page."
"It wasn't the best Major League game," Piniella said. "We had chances. We just didn't take advantage of them. We've talked before that we need to take advantage of opportunities. Today we didn't, and we'll come out and play tomorrow."