Chicago second baseman Darwin Barney dove and got a small piece of the ball -- but it still rolled into the outfield.
"I thought I was going to get there," Barney said. "It tipped my glove. One-quarter of an inch from saving a run."
Soriano, who entered this season with 340 career home runs, smashed an opposite-field shot off St. Louis closer Jason Motte leading off the ninth to tie the game at 6.
"It felt very good," Soriano said. "I put a good swing on a pitch away. It was important to [take] a good swing, especially in the ninth inning."
The blow was a welcomed sight to manager Dale Sveum.
"That was nice, off one of the best closers in the game," Sveum said. "He got on top of his fastball. Hopefully that's the one that gets him going, and he has one of those hot home-run streaks.
Soriano knocked in the game-winning run in Monday's 6-4 triumph in St. Louis, and he has 18 RBIs on the season, but his lack of power had been hard to ignore.
Soriano feels he just needed to get round-tripper No. 1 to start rolling.
"I hope now to continue to hit with power and help the team to win," he added.
The Cubs, who had won two straight, completed a five-game road trip with a 2-3 mark. Two of the losses were by one run and could have gone either way.
Dolis gave up a leadoff single to Holliday to begin the ninth but struck out Allen Craig and induced David Freese to ground out, which moved Holliday to second. Molina then placed a fastball in the perfect spot, just eluding Barney's effort.
"I wasn't trying to hit the ball that way, but I found a hole," Molina said. "I was just waiting for a good pitch to hit."
Kerry Wood and James Russell struggled out of the bullpen. Craig had an RBI hit against Wood in the seventh to tie the game at 5. Russell gave up a solo homer to Matt Carpenter in the eighth that gave the Cardinals a 6-5 lead.
Reed Johnson had given the Cubs a short-lived 5-4 advantage with a pinch-hit RBI single in the seventh.
Chicago first baseman Bryan LaHair continued his Cardinal-killing ways with a solo homer in the sixth to tie the game at 4. It was LaHair's 10th homer of the season, and he is 9-for-23 with five homers and nine RBIs against St. Louis.
LaHair has reached safely in 32 straight games, tying him with four other players for the longest streak by a Chicago first baseman since 1945.
Bidding for his fifth straight win, Cubs starter Paul Maholm gave up four runs in six innings. He struck out five and walked three. Maholm had allowed just three earned runs over his previous four starts.
"After the first, I started making a lot better pitches," Maholm said. "Some days you've just got to go out there and battle and whatever is working you just keep going with it."
The Cubs needed just eight minutes and 17 pitches to build a 3-0 cushion against Kyle Lohse in the first inning. David DeJesus, Tony Campana and Starlin Castro began the game with singles, with Castro's hit bringing in DeJesus with the first run. LaHair then grounded into a double play with Campana scoring from third.
Soriano followed with a double, and Ian Stewart pushed the lead to 3-0 with a hit to right-center.
St. Louis battled back to tie with two in the first and one in the second. Craig's run-scoring double and a groundout by Freese cut the lead to 3-2. Tyler Greene doubled and scored on a groundout by Rafael Furcal to tie the game in the second.
The Cubs scored 29 runs on the five-game trip and came up with several clutch hits down the stretch.
"It was a good day swinging the bats for the most part," Sveum said. "A well-played game on both sides. Somebody had to win."
Regular catcher Geovany Soto was given the day off, and Welington Castillo went 0-for-3 in his sted.
The Cubs begin a five-game homestand on Wednesday with the first of a two-game set against Philadelphia.