"We've actually been swinging the bats pretty good, but tonight was one of those nights where we got dominated by a pitcher," Twins manager Ron Gardenhire said. "But we've been hitting it pretty good, but the last two nights we didn't get it done. Tonight, we really had nothing."
Williams allowed just three hits -- singles to Span in the first and third innings, and a single to Ryan Doumit in the second. He retired 17 batters in a row after picking Span off at first base to end the third.
Span broke up that streak with a two-out walk in the ninth that was the first and only free pass issued by Williams.
"He was throwing sinker/cutter and getting us to do what he wanted us to," said shortstop Jamey Carroll, who went 0-for-3 with two strikeouts. "I think we wore out [second baseman Howie Kendrick] over there tonight. He got a lot of work in. He obviously threw a complete-game shutout and there's not much more to say than that."
It was an impressive outing for Williams, who was out of the Majors from 2008-10 before making his return with the Angels last season.
"I learned how to get people out," said Williams, who struck out six and recorded 15 outs via grounders. "I learned to use what I have and trust it. I think that's the main thing."
He out-dueled left-hander Francisco Liriano, who showed some improvements after he was skipped in the rotation last week in an effort to clear his head.
On a positive note, he pitched into the sixth inning for the first time this season, but also gave up four runs on seven hits and had trouble keeping the ball in the park.
"The result wasn't very good, but I feel like I'm making better pitches than last time," said Liriano, who fell to 0-4 with a 9.97 ERA in five outings. "I feel more consistent throwing strikes. I made a few adjustments. But I also made a few mistakes also. But other than, I think things are getting better."
He served up a solo shot to former Twins center fielder Torii Hunter in the second before promptly giving up a solo blast to Kendrick just two batters later.
He ran into trouble again in the third, as he walked Chris Iannetta before giving up a bunt single to Mike Trout. Alberto Callaspo moved both runners over with a bunt before Albert Pujols added an RBI groundout and Hunter laced an RBI single into left field on an 0-2 slider.
It was another big hit from Hunter, who homered for the fourth time in five games and has driven in eight of the Angels' last 12 runs.
"When you're hot, you just do it," said Hunter, who is batting .453 over his last 12 games against his former club. "You don't think about anything."
Liriano settled down after Hunter's single and ended up tossing 5 1/3 innings with a season-high five strikeouts along with three walks.
"I know he gave up four runs, but he really wasn't that bad," Gardenhire said. "He threw some pitches. He could've made a better pitch to Torii. He had him 0-2 and threw a slider and got that ball up. So if he makes a better pitch there, who knows? But I was happy. He stayed after it after giving up a few runs early. So it was a step in the right direction and we'll build off of that one."