Cardinals first baseman Albert Pujols and pinch-hitter Chris Duncan both hit home runs, while starting pitcher Jeff Weaver threw six strong innings to put St Louis within one win of a World Series playoff berth.


"It's amazing," Pujols said.


"They score two runs and these guys find a way to turn it around and Jeff Weaver did an amazing job.


"The guy was amazing. He settled down and gave us a chance to come back and get a couple runs," Pujols added.


"This was a big game for us."


30-year-old Weaver contained the Mets batters, allowing just six hits and two runs in his six pitched innings, before Josh Kinney, Randy Flores, and Adam Wainwright closed out the match for the Cardinals.


Mets second baseman Jose Valentin hit a double in the fourth inning to open the scoring with Carlos Delgado and Shawn Green rounding home plate for a 2-0 lead.


However the Cards hit right back scoring two of their own in the fourth, including Pujols' home run.


"I'm just glad it got everybody going," Pujols said.


"I just didn't try to do too much. I just waited for one and hit it out of the park."


In the fifth, St Louis took the lead for the first time when Preston Wilson hit a run-scoring double with the Cardinals securing the match in the sixth inning thanks to Duncan who came off the bench to hammer a home run to right field.


St. Louis, who were swept by Boston in the World Series in 2004 and came within one game of reaching the final playoff series last year, now travel to New York for Game Six, and possibly Game Seven of the series if it is required.


The winner of this series meets the Detroit Tigers in the World Series, which begins on Saturday in Detroit.


The Tigers, American League champions, have home field advantage in the World Series as the American League team won the MLB All-Star Game in July.