Joe Cole's second-half winner sank Wales and kept England on course for World Cup qualification.
Cole broke the deadlock after 53 minutes when his shot from Shaun Wright-Phillips' cross was deflected past Danny Coyne by Danny Gabbidon.
England dominated throughout, but goalkeeper Paul Robinson needed to produce a brilliant save from John Hartson to stop Wales taking the lead.
Goalscorer Cole and Wayne Rooney were both guilty of bad misses for England.
England, as expected, fielded a five-man midfield, with Charlton's Luke Young replacing the injured Gary Neville.
And Sven-Goran Eriksson's side exerted almost total domination in the opening stages, pinning Wales back in their own territory for long periods.
Rooney almost ended the stalemate after 20 minutes, exchanging passes with Steven Gerrard, but the youngster was foiled by Coyne's block.
Wales' main threat was coming from Hartson's aerial power, and twice he came close to making England pay for failing to take advantage of their supremacy.
Ashley Cole's brave headed clearance halted Hartson as he closed in on Giggs' cross - then it took a magnificent save from Robinson seven minutes before the interval to keep England on level terms.
Hartson rose to meet another Giggs cross, but Robinson somehow dived low to his left to turn the ball to safety.
Joe Cole missed a great chance to put England ahead on the stroke of half-time, but he headed David Beckham's cross wide from only six yards.
He made amends - and underlined the value of Robinson's save - when he put England ahead after 53 minutes.
Beckham found Wright-Phillips on the right and his cross was met by the incoming Cole, who scored via a big deflection from Gabbidon.
Rooney then almost added a second instantly with a clever chip that was tipped over by Coyne.
Wales were having no impact on England's defence in the second half, despite sending on Robert Earnshaw for Simon Davies.
England had made a change of their own, mystifyingly replacing the lively Wright-Phillips with Jermain Defoe.
Wales managed to extert some pressure in the closing minutes, forcing England into some scrambling defence, but John Toshack's side lacked a real cutting edge.
Wales: Coyne, Duffy, Page (James Collins 64), Gabbidon, Partridge, Ricketts, Fletcher, Robinson (Koumas 55), Davies (Earnshaw 69), Giggs, Hartson.
Subs Not Used: Edwards, Roberts, Jones, Ledley.
England: Robinson, Young, Carragher, Ferdinand, Ashley Cole, Beckham, Lampard, Gerrard (Richardson 84), Wright-Phillips (Defoe 67), Joe Cole (Hargreaves 76), Rooney.
Subs Not Used: Upson, Kirkland, Neville, Bent.
Goals: Joe Cole 54.
Ref: Valentin Ivanov (Russia).