Vaughan's 103, his 16th Test hundred and first on his Yorkshire home ground, helped England to 366 for five at stumps on the opening day of the second Test after he'd won the toss.
Kevin Pietersen followed up with 130 not out having been stumped off a no-ball on 20.
But persevering pace bowler Corey Collymore, who had Paul Collingwood and Ian Bell nicked behind, kept West Indies in the match with two for 80. Matt Prior was 13 not out.
This was 32-year-old Vaughan's first Test in 18 months after he'd been sidelined with a career-threatening knee injury and a hamstring problem before a broken finger sustained while batting against Hampshire three weeks ago kept him out of the drawn opener of this series at Lord's.
"I knew I was under pressure and that's why I was really pleased. It was a big challenge to go out and play as well as I did," he told Sky Sports.
"I was very nervous this morning wondering if I could still play at this level. I worked very hard and maybe this was just meant to be."
He added: "I am delighted, and more importantly with the position we are in."
Vaughan, playing his first Test since appearing against Pakistan at Lahore in December 2005, was 92 not out at tea with Pietersen unbeaten on 53.
He went to a hundred, his fourth against the West Indies, with an edged four off Jerome Taylor through the slips.
Vaughan was barely allowed any time to celebrate his achievement before being engulfed in a huge bearhug by Pietersen.
It was his first Test century since he made 166 against Australia at Old Trafford in July 2005.
He was also the first Yorkshire batsman to reach three figures for England in a Headingley Test since Geoffrey Boycott made his hundredth first-class hundred, against Australia, in 1977.
But on 103, playing a trademark pull shot, he was out to a well-judged catch by Runako Morton at deep square leg off paceman Taylor, England 254 for three after a third wicket stand of 163 between Vaughan and Pietersen.
Vaughan, who batted for nearly four hours, faced 173 balls with 11 fours. His innings meant Andrew Strauss was the only member of England's top seven at Headingley yet to score a hundred in the first two Tests of this series.
Pietersen then posted his second successive Test hundred, following his 109 in the second innings at Lord's, when a leg-glanced four off Daren Powell took him to an eighth century at this level in 25 matches.
He'd faced just 104 balls with 13 fours.
West Indies' woes were compounded when captain Ramnaresh Sarwan had to leave the field after landing heavily on his right shoulder and damaging the joint near the collarbone when tripping over the boundary rope in a failed bid to prevent a four.
Sarwan was taken to hospital and West Indies were awaiting news of a scan before deciding if he could take any further part in this match.
Pietersen had a lucky break when off-spinner Chris Gayle had him comfortably stumped by Denesh Ramdin only for umpire Asad Rauf to call no-ball with England 142 for two. Replays suggested it was a close decision.
Vaughan, in for the dropped Owais Shah, then played a superb backfoot cover-drive off Powell.
Pietersen's sixth four, off Taylor, saw him to a 67-ball fifty in an attack where only Gayle provided some variety.
Alastair Cook was out for 42 to the last ball before lunch, lbw to Gayle after fellow left-handed opener Strauss was caught behind off Powell for 15.
England's other change from Lord's saw Ryan Sidebottom, six years after playing his one previous Test, recalled in place of injured quick Matthew Hoggard.
West Indies suffered a blow before play when Shivnarine Chanderpaul, their senior batsman who top scored for them with 74 at Lord's, was ruled out with tendinitis in his right knee.