KANSAS CITY, Mo. (AP) — Colby Rasmus drew a bases-loaded walk — his fifth free pass of the day — that forced in the go-ahead run in the 10th, and the St. Louis Cardinals walked 13 times in a wacky, 9-8 victory Sunday over the Kansas City Royals.

Every walk Rasmus drew was off a different pitcher. The Cardinals had 12 hits, a hit batter and reached on an error in the 4 hour, 9 minute game.

Yadier Molina had a double, two singles and a two-run triple as the Cardinals took the always-lively interleague series between state rivals two games to one.

Each team used seven pitchers. Royals manager Ned Yost and catcher Matt Treanor were both ejected.

With the game tied 7-all, Tyler Green walked leading off the 10th and went to second when Mike Aviles made a poor throw to first on Albert Pujols’ grounder for Kansas City’s second error. Louis Coleman (0-1), who started the inning, then hit Gerald Laird in the hand with a pitch, loading the bases with no outs and bringing Tim Collins out of the bullpen.

Collins walked Rasmus on four pitches and then with one out walked Molina, giving him his third RBI.

The Royals got a run in the bottom of the 10th on Brayan Pena’s RBI double off Fernando Salas, who worked the 10th for his seventh save in seven opportunities. The winner was Jason Motte (2-1), who pitched one inning.

Down 7-1 after five, the Royals fought back with homers by Alex Gordon, Wilson Betemit and Jeff Francoeur and finally tied it 7-all on Betemit’s RBI single in the seventh.

Gordon homered off Brian Tallet leading off the seventh and Betemit drove in Francoeur, who had been hit by Eduardo Sanchez’s pitch and stolen second.

The inning ended when Billy Butler was caught between second and third, the 12th Royals runner in this seven-game home stand to make out on the bases.

Yost and Treanor were both thrown out in the top of the seventh after Rasmus had drawn a four-pitch walk. First home plate umpire Angel Campos ejected Treanor, then Yost came charging out to argue and was ejected.

Pujols was 2 for 6 with two singles and has reached safely in all 33 interleague games he’s played against Kansas City. But his career-long home run drought stretched to 103 at-bats.

Miguel Batista relieved starter Jaime Garcia in the sixth after Francoeur’s leadoff home run in the sixth made it 7-3. Batista gave up a double to Butler and a two-run homer to Betemit that sliced the lead to 7-5.

Molina doubled and scored in the third, hit a two-run triple in the fourth and singled in the seventh and ninth.

After going errorless in the first three frames, the Royals had tied their team record of 106 consecutive innings without an error. But normally sure-handed rookie first baseman Eric Hosmer’s wild throw to third allowing Molina to score after his triple stopped the streak in the fourth.

Lance Berkman, making his first start since hurting his wrist on Wednesday, walked with one out and Rasmus followed him with a walk before Molina slammed starter Sean O’Sullivan’s pitch into right field.

Second baseman Aviles fumbled the ball as it came in to the infield and Hosmer grabbed it and hurriedly threw toward third. As the ball sailed over Betemit’s head, Molina came home for a 6-1 lead on the Royals’ first error since May 8.

Matt Holliday made it 7-1 in the fifth with a fielder’s choice grounder. But he was lifted for a pinch hitter because of tightness in his left quadriceps muscle.

Gordon doubled home a run for Kansas City in the third. In the fifth, Aviles was credited with an RBI single when Mitch Maier scored after second baseman Green lost his high popup in the sun, making it 7-2.

Butler greeted reliever Batista with a double and Betemit brought the Royals to 7-5 with his second home run.

O’Sullivan gave up seven runs on eight hits in 4 1-3 innings, with four walks and no strikeouts.

In the ninth, the Cardinals loaded the bases with one out on a single and the ninth and 10th walks they issued on the day. But Joakim Soria got Jon Jay to bounce into a 4-6-3 double play.