Wales 19-9 England
Wales (6) 19
- Priestland 2, Hook 2
England (6) 9
- Flood 3
James Hook scored the crucial try as Wales beat England in a pulsating if error-strewn World Cup warm-up clash at Cardiff's Millennium Stadium.
Wales, who lost Gavin Henson to injury, led 6-3 after two Rhys Priestland penalties but Toby Flood levelled it.
England dominated either side of half-time but failed to unlock Wales' defence, only managing another penalty.
Wales picked themselves up to score with Hook's try just before the hour and he landed two penalties to seal it.
England failed to score a try for the first time in 14 Tests to leave manager Martin Johnson with plenty to ponder ahead of their final warm-up match against Ireland in Dublin on 27 August.
Wales head coach Warren Gatland had told his team they had to win if they hoped to be considered serious contenders for the forthcoming World Cup, and they duly ended a three-match losing streak ahead of Argentina's visit to Cardiff next Saturday.
The hosts began strongly, George North taking an innovative kick-off on the right flank to set up a first-minute penalty for Priestland.
But England replied in kind as Flood's restart fell to Nick Easter and this time Wales got on the wrong side of referee Alain Rolland for the England fly-half to level.
Jamie Roberts was a knock-on away from a sensational try from Lloyd Burns' long line-out throw as the venom with which Wales started continued unabated.
Priestland's second penalty was the reward after 10 minutes, but when Wales' early fury abated, England's forward power began to take its toll.
In a display reminiscent of Johnson's heyday as captain, England's driving line-outs and close-quarter aggression were the foundation of a territorial dominance that spanned the game's two middle quarters.
An impressive series of scrums close to the Welsh line had the hosts in all sorts of trouble and on the brink of conceding a penalty try.
But just as that moment approached, England's pack lost control of the ball and when Richard Wigglesworth launched the backline attack, Henson was equal to the challenge.
He brought down Shontayne Hape and the ball spilled into grateful Welsh hands. But after an impressive opening half-hour, Henson was forced off by injury.
England wing Matt Banahan - who came into the starting line-up after Chris Ashton failed a fitness test - looked set to score in the right corner after 13 minutes but Shane Williams brought down the towering wing and Hook stripped him of the ball as he attempted to touch down.
Flood levelled after Wales went off their feet at a ruck and for the rest of the opening period the hosts were forced to defend.
They did so admirably even if England showed a lack of invention and cutting edge in the Welsh 22.
Flood sent Mike Tindall through a hole in midfield on a 40-metre run, but Wales again thwarted the threat close to their own line when Hape was scragged, leaving England increasingly frustrated.
The hosts reshuffled their back division at the break, Aled Brew coming on at wing, Priestland departing and Williams switching to full-back.
Roberts was sin-binned within moments of the restart for not releasing the tackler, further disrupting their back division, and Flood put England ahead for the first time.
As the contest wore on the fitness advantage Wales skipper Sam Warburton and Roberts had claimed over their opponents seemed to be true.
The hosts' attacking style drew England back and forth across the field and as the gaps appeared Wales edged closer and closer to the try-line.
Just before the hour Hook evaded Dan Cole, James Haskell and Danny Care to touch down and reclaim the lead, converting his own try.
The Perpignan-bound player added a penalty after 68 minutes and despite Wales losing scrum-half Mike Phillips to the sin-bin with nine minutes left, England could still not take advantage.
Hook landed another penalty from halfway in the final minute to send the Welsh fans home delirious, and England away with much to contemplate.
Wales: Hook, North, Roberts, Henson, Shane Williams, Priestland, Phillips; James, Burns, Mitchell, Charteris, AW Jones, Lydiate, Warburton (capt), Faletau. Replacements: Bennett (for Burns, 53), Bevington (for James, James for Mitchell, 77), Turnbull (for Wyn Jones, 60), Tipuric, Knoyle, Scott Williams (for Henson, 32), Brew (for Priestland, 41).
Yellow card: Roberts (41), Phillips (71)
England: Foden, Banahan, Tindall (capt), Hape, Cueto; Flood, Wigglesworth; Corbisiero, Thompson, Cole; Deacon, Lawes; Wood, Fourie, Easter.
Replacements: Mears (for Thompson, 59), Stevens (for Corbisiero, 59), Palmer (for Deacon, 68), Haskell (for Fourie, 50), Care (for Wigglesworth, 30), Hodgson (for Flood, 68), Armitage (for Tindall, 59, Tindall back on 74).
Referee: A Rolland (Ire)