CHICAGO -- For six innings and 18 batters, White Sox starter Miguel Gonzalez flirted with perfection against the Tigers on Sunday afternoon at Guaranteed Rate Field.That perfect game and no-hitter ended when shortstop Tim Anderson was charged with an error on Andrew Romine's hard-hit grounder leading off the seventh, which

CHICAGO -- For six innings and 18 batters, White Sox starter Miguel Gonzalez flirted with perfection against the Tigers on Sunday afternoon at Guaranteed Rate Field.

That perfect game and no-hitter ended when shortstop Tim Anderson was charged with an error on Andrew Romine 's hard-hit grounder leading off the seventh, which was later changed to a single. The no-hitter originally ended on Alex Avila's ensuing single to right, and Gonzalez lost the shutout on Jose Cabrera 's single to center. But Gonzalez cruised to a 7-3 victory in the White Sox third win in four games over the struggling Tigers.

"He was pumping strikes. Hitting his spots. Keeping the ball down," White Sox manager Rick Renteria said. "His breaking pitch had some pretty good bite, had some tilt. He was working both sides of it. When he needed to come up and in he did. Other than that, he mixed a couple of speeds with his breaking ball. Throw it for a strike and then kind of lower it a little bit more. He threw the ball very, very well."

• Gonzalez gives mates 'perfect' thoughts

"Strike one from the get-go," said Gonzalez, who struck out six and didn't issue a walk over 107 pitches and 7 2/3 innings. "Getting ahead, especially against this team that's aggressive. It was fun to be out there again and get back on track."

The right-hander entered Sunday 0-5 with a 6.99 ERA over his past five starts, but he mesmerized the Tigers. Gonzalez went 3-0 on the first batter of the game, Romine, but had only four three-ball counts before the perfect game was broken up.

"He mixed pitches very well and had good movement," Tigers manager Brad Ausmus said of Gonzalez. "He threw all four pitches, kept the ball down in the zone to get some ground balls. He had his location and he's a location-style pitcher and that combined with us not swinging the bats that well, and that's what happens."

Phil Humber was the last White Sox hurler to throw a no-hitter, which also was a perfect game, on April 21, 2012, in Seattle. Mark Buehrle was perfect against Tampa Bay on July 23, 2009, which was the last White Sox perfect game at home.

Jose Abreu came up with the only tough play to keep the perfecto in tack, making a slick grab of Avila's hard-hit grounder down the line with one out in the fourth and turning it into an easy out at first. Avila worked a full count in that at-bat, as did Victor Martinez leading off the fifth before taking a called third strike.

Melky Cabrera , Matt Davidson and Todd Frazier went deep off Jordan Zimmermann in support of Gonzalez. Willy Garcia also tripled home a run in the third.

"[It was] terrible," Zimmerman said of his outing. "I feel like my fastball's good, my curveball's good, my changeup's good and my slider is absolutely terrible right now. Over my career, my slider has been my best pitch. It's the pitch I can throw when I'm ahead in the count for strikes and right now, this whole year, it's been backing up, it's been middle, I've been spiking it and haven't been anywhere close."

• Without feel for slider, Zimmermann at a loss

Detroit continued to hit after breaking through against Gonzalez, adding two runs in the eighth and chasing the right-hander with two outs. Romine tripled home a run in that frame.

MOMENTS THAT MATTERED

The end of perfection: Gonzalez went 3-0 on Romine to start the seventh, almost losing his perfect game before he lost it two pitchers later. Romine's hard-hit grounder was fielded by Anderson off to his side and bounced out of his glove. Official scorer Bob Rosenberg originally and fairly quickly ruled the play an error, but changed it to a single after the top of the seventh came to a close.

Out goes Frazier: Although Frazier has been tracking the ball better lately, drawing 10 walks in his past seven starts, the third baseman still entered the contest with three hits in his past 26 at-bats. His two-run home run off Zimmermann in the fifth marked his sixth of the year.

QUOTABLE

"It's super frustrating, and I have to go over it the next bullpen and throw it and throw it and throw it until I can figure it out. I don't understand how it became like this or got this way, but I just need to figure it out." -- Zimmermann, on finding his slider

"A bunch of the guys came up to me and told me, 'It was huge for you to go out there in the eighth inning and give the bullpen a rest, especially having that doubleheader and that late game before that.' I think that's huge." -- Gonzalez, on working deep into Sunday's victory

SOUND SMART WITH YOUR FRIENDS

The 18 straight retired by Gonzalez to start the game was the longest such streak by a White Sox starter since Chris Sale on May 12, 2013, when Sale retired the first 19 against the Angels before a Michael Trout single to center.

CENTRAL EXCELLENCE

The White Sox improved to 6-3 vs. Detroit this season and won back-to-back series vs. the Tigers for the first time since 2014 (June 9-12 and July 29-31). They are 17-13 against the AL Central.

WHAT'S NEXT

Tigers: The Tigers continue their three-city road trip in Kansas City on Monday, sending Daniel Norris (2-3, 4.38 ERA) to the mound at Kauffman Stadium. Norris is coming off a no-decision against Houston when he gave up two runs (one earned) in 6 1/3 innings. First pitch is scheduled for 7:15 p.m. ET.

White Sox: David Holmberg (0-0, 0.87) gets the spot-start call for Monday's series opener against David Price and the Red Sox at Guaranteed Rate Field with a 1:10 p.m. CT first pitch. Holmberg has eight relief appearances this season and 12 career big league starts.

Watch every out-of-market regular-season game live on MLB.TV.