But on Saturday afternoon, the Toronto pitcher was close to flawless.
Dickey worked eight solid innings, striking out six and giving up two runs on seven hits and two walks as the Blue Jays defeated the Kansas City Royals 4-2.
For the 38-year-old, Saturday's success was about taming his wild knuckleball by controlling its velocity.
"An observant person probably saw that I changed speeds quite a bit today and was able to keep the slower knuckleball down and got some outs with it," Dickey said. "When you can add and subtract speed in the strike zone, you're going to have a better chance of your opponent mis-hitting balls and that was helpful for me today.
"I took some risks and they paid off and hopefully I can just continue to get better."
When Dickey (11-12) left the game after the top of the eighth, Toronto was down 2-0. But as he sat in the dugout with another pending loss hanging over his head, the Blue Jays came alive, taking advantage of some sloppy defence and ineffective pitching to score three unearned runs in the eighth inning.
Shortstop Alcides Escobar blew a tailor-made double-play ball and Aaron Crow would later walk in two runs as the Blue Jays won their third game in a row.
Jose Reyes hit three singles and Casey Janssen pitched the ninth to pick up his 26th save for Toronto (62-74).
"It is very rare, especially late in the game like that because most of the time your opponents' better relievers are coming in with a one-, two-, three-run lead so you don't see that happening very often," Dickey said of his teammates' late rally. "I was very fortunate.
"It wasn't an expectation. I certainly thought we had a chance to tie it, but the way that it happened, you don't see that very often."
Blue Jays manager John Gibbons was impressed with his starter's outing.
"It's been a battle for him here this year but he's on a nice little run, too. He's pitching very well," Gibbons said. "They scored those two runs early on but that was it, so that's all you can ask for — eight strong innings.
"After Buehrle last night, Dickey today, that's just what we need. That's why we brought them over, to pitch games like this. You're not going to get shutouts every time but you want them to hold the game within reason and give you a shot late."
Blue Jays rookie Ryan Goins reached base on the Escobar error in the eighth while Reyes moved to second. Edwin Encarnacion walked to load the bases, with Crow coming in to replace Will Smith.
Crow struck out pinch-hitter Mark DeRosa for the second out but unravelled from there, walking Brett Lawrie of Langley, B.C., to put Toronto in front and then giving the Blue Jays another run by walking Rajai Davis.
Ned Yost came out to replace his pitcher and had some words for home-plate umpire Will Little, who ejected the Kansas City manager. Tim Collins came on in relief and got J.P. Arencibia to fly out.
"Crow finally throws a strike and it gets called a ball," Yost said. "A strike is a strike ... you don't miss a pitch on a crucial situation like that. If he throws a ball, OK. But I think the replay will show it was definitely a strike."
First baseman Eric Hosmer had two hits and drove in a run for Kansas City (69-66) and Escobar picked up the Royals' other RBI on a two-out single to score Salvador Perez. Former Blue Jay Emilio Bonifacio had a triple and scored in the third inning for Kansas City. He also struck out three times.
Jeremy Guthrie pitched seven strong innings for the Royals, allowing one run on eight hits while striking out four. Kelvin Herrera (5-7) shouldered the loss.
The Blue Jays scored their first run in the seventh inning when Josh Thole drove a ball down the left-field line to score Davis. Thole was thrown out at second base on the play.
The Blue Jays made a few other base-running blunders during the game. Goins was thrown out trying to go from first base to third on a single by Adam Lind in the first inning, and Reyes was thrown out at second trying to stretch a single into a double in the third.
"Baserunning wasn't good today," Gibbons said. "The one with Goins going to third base, that's right in front of him. He'll learn there's certain left-fielders — Gordon's one of the best, a gold-glover. Reyes, I've got no problem. He runs, that's the way he is.
"The Thole one, we can't do that, especially in a tight ball game. We're lucky that didn't come back to bite us."
Goins picked up a single in the first inning to extend his hitting streak to eight games. That tied Jesse Barfield's team record for the longest hitting streak to begin a major-league career. Barfield set the mark in 1981.
Follow Melissa Couto on Twitter at @throwinsmoke
NOTES: Encarnacion is one home run shy of becoming the fourth Blue Jay in club history to record 35-plus home runs in back-to-back seasons. The other three players are Carlos Delgado, Shawn Green and Jose Bautista. ... Attendance at Rogers Centre was 34,315. ... The Blue Jays wrap up their three-game series with Kansas City on Sunday. Toronto left-hander J.A. Happ (3-4, 5.46 earned-run average) gets the start for the Jays against Royals right-hander James Shields (9-8, 3.14 ERA).