Millwood, 37, allowed just three hits in helping the Mariners snap an eight-game road losing streak. It was his 164th career win, ninth on the Major League's active list, and first against the Yankees since 2009.
"He's pitched a lot better than his numbers indicated," said Mariners manager Eric Wedge after Millwood improved to 1-4 with a 5.09 ERA. "He's had a few bad innings, but he was outstanding today."
Yet even Millwood was talking about Pettitte after the 39-year-old pitched his first game in the Majors since temporarily retiring after the 2010 season.
"I was watching him. I think everybody was kind of curious," said Millwood. "But it was pretty much what everybody expected. He's pretty much the same guy he was two years ago. He's going to get a lot of people out and win a lot of ballgames. It's just Andy Pettitte. It's who he is."
Pettitte competed fairly well with four runs allowed on seven hits over 6 1/3 innings, but the Mariners got to him with home runs by Smoak in the fourth and Wells in the sixth.
Smoak's line shot over the left-field wall was his fourth homer of the season and first extra-base hit since a home run in Detroit on April 26.
It was also Smoak's first home run of the season batting right-handed, where he was hitting .097 coming into the game. The blast came after catcher Jesus Montero walked with two outs and was the first hit of the game off Pettitte.
"That was probably one of the better balls I've hit all year," said Smoak, who went 2-for-4 to raise his average to .205. "I know [it was] from the right side. To stay on a slider or cutter that kind of got over the plate, to square it up like that felt good."
Wells, whose family was in attendance from Schenectady in upstate New York, drove his first home run of the season off the right-field foul pole in the sixth inning after Dustin Ackley led off with a single to make it 4-1.
"I couldn't let it get too crazy, but it's been a dream of mine to play in Yankee Stadium and hit a home run here," said Wells. "Facing Andy Pettitte? That's a lot of things coming true today, so it was pretty special."
Wells finished off Seattle's scoring in the ninth with a bases-loaded infield single off reliever Clay Rapada's glove, with a second run scoring on Rapada's throwing error. Then he threw out Nick Swisher at third base trying to stretch a double leading off the bottom of the ninth.
The Mariners had a chance to bust things open earlier after Wells' home run in the sixth, loading the bases on consecutive singles by Montero, Smoak and Alex Liddi. But Mike Carp grounded into an inning-ending double play, with first baseman Mark Teixeira stepping on the bag and then throwing out Montero at the plate to keep the score at 4-1.
Meanwhile, Millwood breezed through four innings on just one hit before getting into -- and out of -- big trouble in the fifth. He walked in a run with a bases-loaded free pass to Russell Martin, but then got Jeter on a grounder up the middle that Brendan Ryan converted into a double play with some quick footwork at the second-base bag.
"That was huge, and it was a great play by Brendan to be able to turn that," Millwood said. "It's not an easy play. He makes a lot of tough plays look pretty easy."
With Millwood out after 94 pitches, the Yankees threatened with a pair of singles off Tom Wilhelmsen in the bottom of the eighth. After Rule 5 Draft pick Lucas Luetge came on to strike out Curtis Granderson for the second out, Steve Delabar walked Alex Rodriguez to load the bases.
Charlie Furbush then walked Robinson Cano to force in a run, but he struck out Teixeira to preserve the lead, and Brandon League closed things out in the ninth as the Mariners avoided the series sweep and now head to Boston with a 16-20 record.