CINCINNATI (AP) -- Rick Ankiel sure looked healthy on his first home run in three weeks.
Still fighting off the effects of an abdominal strain, Ankiel hit a two-run shot off Bronson Arroyo that helped the St. Louis Cardinals beat the Cincinnati Reds 5-3 on Friday night for their third straight win.
The Cardinals have stayed in wild-card contention by winning five of their last seven despite another setback to their starting rotation. Right-hander Chris Carpenter went on the 15-day disabled list Friday with a strained shoulder, joining Mark Mulder and Adam Wainwright on the sideline.
Brad Thompson (5-2) took Carpenter's spot and kept the Cardinals' spurt going. The right-hander went five innings and gave up three runs, including an unearned run set up by catcher Jason LaRue's bad throw and missed tag.
"It's very simple: Thompson did a great job," LaRue said. "Early on he was getting the ball up a little bit, but he settled down and made some unbelievable pitches when he had to."
Rookie Chris Perez relieved with one out in the ninth and gave up a single before striking out the last two batters, completing his fourth save in five chances. Perez has helped stabilize a bullpen that leads the NL with 27 blown saves.
Arroyo (10-10) couldn't put the brakes on Cincinnati's fade. The Reds have lost 16 of 20, leaving them stranded in last place in the NL Central.
Ankiel got it going with a two-run homer in the first. The outfielder returned to the lineup on Monday after missing two weeks with strained abdominal muscles. His 23rd homer ended the long drought and put St. Louis ahead to stay.
"I'm getting there," Ankiel said. "I'm close. It's just that the abdominals are tough. You've got to be careful with them."
At that point, Ankiel was 5-for-11 with three career homers off Arroyo, who made a big mistake in that first at-bat.
"Ankiel crushed me," Arroyo said. "I was trying to bounce a breaking ball and left it over the middle."
Felipe Lopez had a single and a triple off Arroyo and scored twice. Albert Pujols had three hits, including a double that bounced off the corner of third base and flew to a fan in the stands wearing a Pujols shirt.
Thompson gave up only three hits in his fourth start of the season and his first since June 19. The right-hander also has made 16 relief appearances. The Reds scored an unearned run off Thompson with the help of two mistakes by LaRue in the fifth inning.
Corey Patterson walked, stole second and continued to third when LaRue threw the ball into center field. Patterson broke for home when Ryan Hanigan hit a grounder to third baseman Troy Glaus, whose throw home was in plenty of time to get the out.
Instead of holding his mitt by the plate, LaRue tried to make a swipe tag. He missed Patterson's foot as he raised the mitt, allowing the outfielder to slide in safely.
Thompson was unhappy with the call, but didn't let it get to him.
"It was a tough play," Thompson said. "I probably could have handled it a little better. You've got to make your pitches after that."
Cincinnati's Chris Dickerson hit a solo homer and a double. Dickerson got his first promotion to the majors on Tuesday, taking over in left field after Adam Dunn was traded to Arizona. The 26-year-old rookie has six hits, all of them for extra bases.
The Cardinals activated OF Brian Barton, out since July 6 with a hand injury. He grounded out as a pinch-hitter. ... St. Louis improved to 36-28 on the road. ... Oakland's Carlos Gonzalez started his career with seven extra-base hits -- one more than Dickerson -- earlier this season. All of Gonzalez's hits were doubles, according to the Elias Sports Bureau. Dickerson has a homer, a triple and four doubles.