Starlin Castro remembered the previous time he had six RBIs in a game.

"Yeah, my debut," he said. "That was a long time ago."

Castro accomplished that in his first big league appearance, at Cincinnati on May 7, 2010 at Cincinnati.

More from FoxSports

He did it again Friday, hitting a tiebreaking, two-run homer in the fifth inning and a three-run drive in the sixth to lead the Chicago Cubs over the St. Louis Cardinals 8-3 Friday for their fourth straight win.

Castro went 3 for 3 with a walk in the third multihomer game of his career. He put the Cubs ahead 5-3 in the fifth with his drive off Seth Maness (4-2), then connected off Steve Cishek in the sixth for his 10th homer this season.

Castro, who lost his starting shortstop job in early August, has not lost his swing and upbeat attitude, according to manager Joe Maddon. And the infielder loved the curtain call following his second homer.

"I have like six years here and that never happened, never," Castro said. "That's my first time and I enjoyed it so much."

Maddon was heartened by Castro's performance and recognition.

"When his name has been called, he's been ready," Maddon said. "I've been nothing but impressed with him this whole time.

Chicago began the day two games behind Pittsburgh for the NL's top wild-card berth. The Cubs closed within six games of the NL Central-leading Cardinals.

Tommy Hunter (2-0), the second Chicago reliever, got one out in the fifth, and Justin Grimm, Pedro Strop, Fernando Rodney and Neil Ramirez combined for four scoreless innings of two-hit relief.

Cardinals starter Lance Lynn lasted 3 1/3 innings and threw 83 pitches, allowing three runs, four hits and six walks. He is 0-2 with a 9.26 ERA in his last three starts, giving up 12 runs, 15 hits and 11 walks in 11 2/3 innings.

St. Louis manager Mike Matheny and a trainer went to the mound to speak with Lynn with one out in the fourth. Lynn walked Dexter Fowler and was replaced by Tyler Lyons.

"I was a little caught on the mound. That happens sometimes as the game goes on," Lynn said.

Chicago starter Dan Haren gave up three runs -- one earned -- and three walks in 4 1/3 innings.

Matheny and Matt Belisle, the sixth St. Louis reliever, were ejected in the seventh after Belisle hit Anthony Rizzo with a pitch.

"Obviously there was a warning, but I had to try to pitch in, so what can you do," Belisle said.

Plate umpire Dan Bellino had issued a warning after St. Louis pinch hitter Matt Holliday was struck on the back of the helmet by a pitch from Haren in the fifth. After walking to first, Holliday was replaced by pinch-runner Pete Kozma.

Matheny said Holliday sustained only a bruise. Holliday returned from the disabled list this week after being sidelined 41 days with a right quadriceps strain, and Matheny had planned to run for him.

Haren said hitting Holliday was accidental.

"Going inside on him is one of the only places I can go, and I just lost it," Haren said. "The ball popped out my hand."

Maddon was angry over what he claimed was retaliation by the Cardinals.

"There was no malicious intent on Dan Haren's part," Maddon said. "So to become this vigilante group that all off a sudden wants to get their own pound of flesh, that's absolutely insane, ridiculous and wrong. ... And furthermore, we won't start stuff, but we will end stuff."

TRAINERS ROOM

Cardinals: Matheny held C Yadier Molina out of the starting lineup for a second straight day to give him rest.

Cubs: Rookie Kris Bryant didn't start despite having six hits, including four doubles, in the previous two games. He grounded out as a pinch hitter in the sixth and stayed in the game at third base.

UP NEXT

Ace RHP Michael Wacha (16-5, 2.96) will start for St. Louis on Saturday and LHP Travis Wood (5-4, 4.11 ERA) for Chicago.