CHICAGO (AP) — Mike Matheny insisted it wasn't the umpire's call that set him off at the end of the game. It was his reaction earlier in the ninth inning.

Matheny got into a heated argument with plate umpire Dan Bellino and had to be restrained after the St. Louis Cardinals lost 3-0 to the Chicago Cubs on Thursday night.

He might have made contact with the ump, too, although Matheny insisted he wasn't sure if they touched or if he will be disciplined.

Matheny made one thing clear, though. He was actually upset at Bellino for taking off his mask after a called third strike on Matt Adams leading off the inning.

"It had more to do with the umpire and how he mistreated one of our players, with Adams," Matheny said. "It had nothing to do with the call. It had everything to do with going too far."

Edwin Jackson earned his third straight win, combining with four relievers on a four-hitter, and Anthony Rizzo drove in all three runs for Chicago.

The Cubs were sailing along until they escaped trouble in the eighth and got out of it again in the ninth.

St. Louis had the tying run at the plate in the ninth inning after Kevin Gregg dropped a throw covering first base after Rizzo made a diving stop on Allen Craig's grounder and David Freese walked. Alfonso Soriano battled the lights and made a shoestring catch on Jon Jay's liner to end the game.

The Cubs came away with the win. Gregg got his 16th save in 18 chances, and St. Louis' five-game winning streak ended.

Jackson (6-10) struck out five without a walk in seven innings. Starlin Castro added three singles and scored two runs for the Cubs, who won for the fifth time in six games.

The Cardinals lost Matt Holliday to tightness in his right hamstring when he ran out a grounder in the fourth inning.

Rizzo delivered an RBI double in the first inning after Castro singled with one out and made it 3-0 in the third off Jake Westbrook (5-4), poking a two-run single to left past a drawn-in infield.

That was enough for Jackson, who didn't give up either a run or a walk for the first time this season. He also matched his longest outing of the year and improved to 5-2 in his last seven starts after opening 1-8.

"He just had his fastball command and movement really on tonight and was hitting his spots, and just making quality pitches," the Cardinals' Matt Carpenter said. "We weren't able to put too many quality swings on him, and when we did, we were hitting them right at people. He just had a good night."

Page 2 of 2 - The Cubs made some crisp plays behind Jackson, including Brian Bogusevic's leaping catch against the center-field wall to rob Adams of an extra-base hit leading off the seventh.

The Cardinals had runners on first and second in the eighth after Blake Parker gave up a leadoff single to Jay and walked pinch-hitter Daniel Descalso with one out. James Russell then retired Carpenter on a liner to center, and Pedro Strop threw a wild pitch to put runners on second and third before Carlos Beltran struck out swinging to end the threat.

Westbrook went seven innings and allowed three runs and seven hits. But it was a tough night for the NL Central leaders, particularly with Holliday leaving the game.

He came up clutching his hamstring halfway to first base on a grounder to short in the fourth. He walked off gingerly after being tended to by a trainer and didn't go out to left field in the bottom half.

"I think I'll have a better feel for what it looks like (Friday)," Holliday said. "And hopefully, it will be day to day and I'll be able to use the (All-Star) break, and it will be all right."

NOTES: Beltran played in his 2,000th game. ... The Cubs' Scott Baker threw a bullpen session at Wrigley Field on Thursday and will begin a minor league rehab stint with Class A Kane County on Sunday. The right-hander sat out last season with Minnesota after having Tommy John surgery and had a setback in spring training. Chicago manager Dale Sveum said he will make at least four rehab starts before joining the Cubs. ... RHP Joe Kelly (0-3, 4.15 ERA) starts Friday for the Cardinals, with RHP Carlos Villanueva (2-4, 3.63) going for the Cubs.