PITTSBURGH (AP) — Trevor Williams lost out in the derby to be the Pittsburgh Pirates' fifth starter in the spring. Banished to the bullpen for the first month of the season, he felt he needed to turn himself into a flamethrower.

When he was brought back into the rotation in early May, he tried to pitch with the same mentality. It didn't work.

"I was trying to throw it 95, every pitch," Williams said. "That's not the pitcher that got me to the major leagues. I got punched in the face early."

Now he's punching back. Williams allowed one hit over seven dominant innings to outduel Detroit's Justin Zimmermann as the Pirates beat the Tigers 3-0 on Monday night. Williams (5-4) struck out five and walked two, relying on his defense and a fair amount of maturity to lead Pittsburgh to a third straight victory.

"It was just old-fashioned pitching," Pirates manager Clint Hurdle said. "It was an extremely solid, aggressive ballgame."

Williams has steadily improved following a bumpy start to his first full year in the majors, helping the Pirates hang around the fringe of the NL Central race.

His ERA stood at 7.98 after the Los Angeles Dodgers tagged him for six earned runs in three innings on May 8. It's now at 4.17, thanks to a commitment to get back to basics. Never one to overpower a lineup, Williams is relying heavily on command and a bit of fearlessness. He's not afraid to go inside or up in the zone, and he's not panicking when Plan A doesn't work out.

"When I see I can get guys without my greatest stuff, it gives me confidence that I can go to it when I don't have it that day," Williams said.

James McCann provided Detroit's only hit, a solid single leading off the third. Otherwise, Williams was firmly in control. No Tiger reached third base, thanks in part to some solid play behind him. Ian Kinsler hit a ball to the warning track in right field with two outs and McCann on base in the third. Pittsburgh center fielder Andrew McCutchen made a beautiful diving grab on a sinking liner by Mikie Mahtook in the sixth, and third baseman David Freese made a spinning stop on a grounder by Justin Upton in the seventh.

Williams finished with a flourish. His 107th pitch was a fastball that caught Nicholas Castellanos looking to end the seventh.

"(Williams) pitched up early, he pitched down late," Detroit manager Brad Ausmus said. "We did square up some balls, hit some balls hard, but they seemed to go right at someone. It's unfortunate because (Zimmermann) pitched outstanding."

Francisco Cervelli gave the Pirates the early lead with an RBI double off Zimmermann (7-9) in the second. John Jaso provided some late insurance with a pinch-hit two-run homer in the seventh. Zimmermann struck out three and walked two in seven innings as the Tigers lost their third straight following a four-game winning streak.

"I think I went to the well one too many times with the curveball and I left it (in the) middle," Zimmermann said. "If I throw it away where the other ones were, it would probably be a different result."

Pittsburgh's bullpen did the rest. George Kontos — claimed off waivers from San Francisco on Saturday — retired the Tigers in order in the eighth, and Juan Nicasio worked a perfect ninth for his second save in five opportunities.

TRAINER'S ROOM

Tigers: Called up IF Jeimer Candelario from Triple-A Toledo to fill in after putting Jose Iglesias on the bereavement list. Detroit acquired Candelario from the Cubs last week in the trade that sent Justin Wilson and Alex Avila to Chicago.

UP NEXT

Tigers: Matthew Boyd (5-5, 5.35 ERA) will look to win his fourth straight decision since returning from a stint at Triple-A Toledo. Boyd is 3-0 with a 4.56 ERA in four starts since being recalled after the All-Star break.

Pirates: Chad Kuhl (4-7, 4.53 ERA) pitched seven shutout innings in his last start against Cincinnati. Kuhl has a 3.00 ERA in four starts since the break.

___

More AP baseball: https://apnews.com/tag/MLBbaseball