Last night, Zack Greinke took a no-hitter into the 8th inning. Gregory Polanco ended the no-hit bid and the shutout with one swing, but Greinke’s 8/1/1/1/11 line was still his best outing of the year. And that’s saying something, because in the first five weeks of 2017, Greinke has been as good as he was in his prime.

Back in spring training, the narrative was primarily about his velocity. He was sitting in the high-80s in Arizona, and while I noted that he’d done this before, he continued this somewhat worrying trend on Opening Day, when he lasted just five innings against the Giants, running a 5.22 FIP/5.28 xFIP in his first start of the season.

But since Opening Day, Greinke has made seven starts, and with just one exception, they’ve ranged from really good to staggeringly excellent. His line during those seven starts: 46 2/3 IP, 40 H, 6 HR, 7 BB, 54 K. That’s a 2.70 ERA/2.83 FIP/2.65 xFIP, and in this run environment, that translates to a 60 ERA-/68 FIP-/65 xFIP-. Even including his Opening Day clunker, he’s at 62 ERA-/74 FIP-/71 xFIP-. Over a full season, those marks would each be the third-best of his career in their respective category. Right now, Zack Greinke is pitching like Peak Zack Greinke.

And, remarkably, he’s doing this without his fastball. His dominance of late isn’t because his velocity has returned; he’s actually throwing just as not-hard as he was when there was so much concern over him in March.

Greinke sat at 94 as recently as 2014, and was at 93 in his final year in Los Angeles, the one that convinced Arizona to give him $206 million. He fell to 92 last year, and the velocity loss was a prime suspect in why he had his worst year since he became a quality pitcher, but this year, he’s lost another mph off his fastball, but is pitching as well as ever. So what’s the deal?

Generally, when you think of guys learning to pitch without velocity, the story involves throwing more strikes, painting the corners, and commanding the strike zone. Except, of the 102 qualified starters to take the mound this year, Greinke’s Zone% ranks 99th, as only 39% of the pitches he’s thrown this year have been in the strike zone. Greinke is getting guys out by throwing lower velocity pitches that would be balls if hitters didn’t swing at them.

But when Greinke throws a ball, opposing hitters are swinging and swinging often. Greinke has induced the second highest O-Swing% in MLB, behind only Michael Pineda. Interestingly, though, when Greinke throws a pitch in the strike zone, hitters are taking far more often than against most pitchers, as he has the 12th-lowest Z-Swing% among qualified starters.

The average qualified starter has a Z-Swing% about 34 percentage points higher than his O-Swing% this year. Greinke’s 21% differential is the lowest in baseball, and only Pineda (22%) and Lance McCullers (22%) are also under 26%. Having batters take strikes and swing at balls is one of the main reasons all three of these guys are off to strong starts in 2017.

But with McCullers and Pineda, it’s easier to understand why that’s happening. Both of them average 94 mph on their fastballs and have wipeout breaking balls, with McCullers’ curve and Pineda’s slider among the best bendy pitches in the game. Greinke is sitting 91, and while he has a good slider, it isn’t usually thought of as one of the game’s great out-pitches.

This year, though, his slider is getting some pretty amazing results.

MLB’s pitch-tagging algorithm has Greinke throwing 218 sliders this year. Here’s what hitters are doing with the pitch this year, and we’ll put last year’s results in there for comparison.

Greinke’s Slider Year O-Swing% Z-Swing% O-Contact% Z-Contact% 2016 48% 77% 47% 91% 2017 55% 75% 46% 68%

Last year, opposing hitters made contact 91% of the time they swung at a Greinke slider in the strike zone; this year, that’s down to 68%. Three out of four times, Greinke puts his slider out of the zone, but this year, the pitch is also getting whiffs in the zone, allowing him to get extra strikes and pitch ahead in the count more regularly. And when you’re pitching ahead in the count, then hitters are going to expand the zone, and chase more of the pitches out of the zone that he’s throwing.

We should also mention that one of the first things the Diamondbacks new front office did this winter was emphasize defense behind the plate, non-tendering Wellington Castillo (one of the worst framing catchers in MLB) and replacing him with a combination of Chris Iannetta, Jeff Mathis, and Chris Herrmann. Mathis, the best framer of the bunch, has caught all eight of Greinke’s starts this year, and it’s likely not a coincidence that Greinke has had more success with a better receiver behind the plate.

Greinke’s stuff isn’t what it used to be, and he probably can’t keep dominating at this level while sitting at 91 mph; the take-strikes/swing-at-balls trick is hard to pull off over a long period of time, after all. But with a catcher behind the plate who can help him expand the zone, and a slider that’s missing bats even in the zone, the 2017 version of Zack Greinke looks a lot more like the guy the Diamondbacks thought they were getting.

And this is about the best result Arizona could have hoped for this year. A good Greinke not only gives them a more legitimate shot at a Wild Card spot, if others on the roster also keep playing better than expected, but it gives them a much better chance to trade Greinke and most of his remaining contract this summer if they decide that they’re not legitimate contenders. If Greinke can keep pitching well, even with a 91 mph fastball, the team will have a pretty interesting decision to make in July.