CHICAGO -- Even at his lowest point, Edwin Jackson kept believing he would somehow turn his season around.
It sure is looking like an about-face now.
Jackson earned his third consecutive victory, combining with four relievers on a four-hitter, and Anthony Rizzo drove in all the runs to lead the Chicago Cubs to a 3-0 victory against the St. Louis Cardinals on Thursday night.
"This is probably the craziest start I've had in baseball," Jackson said, referring to his season. "It's a game of grinding it out. As long as you believe and you have the confidence that you can come in and turn things around, it's all that matters.
"Nobody expected me to start like I did -- myself, the front office, the team, the managers. No one. But it's a game, you have to keep grinding. You can either sink or you can swim."
The Cubs almost went down at the end of this one.
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.
Cardinals manager Mike Matheny was then seen arguing vehemently with plate umpire Dan Bellino and might have made contact with him in front of the first-base dugout. He also had to be restrained.
Matheny said he wasn't sure if he made contact with Bellino or if he will be disciplined by baseball. He was actually upset at the umpire for taking off his mask after a called third strike on Matt Adams to start 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."
Either way, the Cubs escaped 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 past seven starts after opening 1-8.
"Hopefully, this is [a sign of] things to come in the second half," Rizzo said.
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 Matt 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, allowing 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."
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.