Joe McEwing drove in two runs for the Mets (11-17) with a double off the left-field wall that was an inch or so short of being a grand-slam in the eighth inning to cut the lead to one. The very next batter, Roberto Alomar, tied the game with a sacrifice fly to left.
Armando Benitez came on to pitch two scoreless innings -- the eighth and ninth -- and turned it over to Scott Strickland (0-2) in the tenth who got the first batter and then served up the home run to Jim Edmonds.
Cal Eldred (2-0) pitched a scoreless 10th to pick up the win.
"It was a tough loss, but it's one you can live with," manager Art Howe said, whose team has now dropped five straight and head to Milwaukee to face the last place Brewers on Friday night. "We battled right to the end."
Steve Trachsel cruised through the first four innings, but faced trouble in the fifth after he allowed two singles to set up a Brett Tomko two-run double into right field that put St. Louis (14-12) up by a run.
Orlando Palmeiro began the eighth by reaching base on a bunt single and he was followed by an Albert Pujols base hit. Trachsel hit the next batter, Jim Edmonds, and was chased after Scott Rolen cleared the bases with a double that gave the Cardinals' a four run cushion.
The Mets got on the board early in the top of the first after Roger Cedeno singled, moved up the second on a sacrifice by Timo Perez, and was driven home by Cliff Floyd who hit a double to left off Cardinals' starter Brett Tomko.
Steve Trachsel pitched five innings allowing five runs, eight hits, and no walks while fanning two batters. David Weathers pitched the sixth and seventh innings, surrendering two hits and no runs.
Rey Sanchez started the game after sitting out the last seven with an elbow injury. He went 4-for-5... Roberto Alomar, struggling tremendously, did not start... Cardinals' first basemen Tino Martinez served the final game of his suspension after getting into a fight with Arizona pitcher Miguel Bautista... Tom Glavine (3-2, 3.60) opposes former-Met Glendon Rusch (1-4, 7.52) on Friday night against the Brewers...