Josh Adams and Liam Williams scored hotly disputed tries for the hosts but the game was level going into the final quarter after tries for Anthony Watson and Ben Youngs for the defending champions.
England's discipline, terrible from the first whistle, came back to haunt them, however, as Callum Sheedy landed three penalties.
Cory Hill finished things off with a late try as Wales secured a bonus point after scoring four against England for the first time in 23 years and the Triple Crown after wins over Ireland and Scotland. It was also the most points Wales have scored in an international against England.
Having come into the Championship on the back of a very poor 2020, they top the standings on 14 points with games against Italy and France to come.
France, whose match against Scotland on Sunday has been postponed due to Covid-19, are second on nine from their two wins. Ireland, who beat Italy earlier on Saturday, are third on seven points, with England trailing on six after two defeats.
Wales led 17-14 at halftime through two of the most controversial tries seen for many years in the championship.
The first came when England were breaking out of a huddle after the referee had instructed captain Owen Farrell to address his players and they were unprepared for Dan Biggar’s kick to the corner that Adams collected in acres of space.
Farrell’s complaints were brushed away by French referee Pascal Gauzere and the captain was fuming again when Louis Rees-Zammit appeared to knock on – he certainly thought he had – before Williams scooped up the loose ball to score.
The TMO ruled that there was no knock-on due to the ball hitting the young winger’s foot, though pundits, including former British and Irish Lions captains Martin Johnson and Sam Warburton, seemed split on the technicality of the offence.
ATTACKING PLATFORM
Farrell penalties kept England in touch and they built an attacking platform and moved the ball wide for Watson to deliver his trademark step to evade a clutch of defenders.
The Welsh lead was stretched to 10 points again soon after the restart when scrumhalf Kieran Hardy caught the visitors napping again with a tap and go penalty.
England kept calm, however, playing their best rugby of the championship and Youngs threw a dummy to scamper over.
Farrell converted – bringing up his 1,000th international point – to level the scores. However, it was English indiscipline that settled the issue as they gave away three more penalties that replacement Sheedy gleefully converted, with Hill burrowing over at the death.
"We had a tough time in the Nations Cup and we showed character in the previous two games, though we had a bit of luck as well, so we're pretty pleased with how it went today," said Wales captain Alun Wyn Jones.
Wales coach Wayne Pivac was delighted with his players.
"Some people will say it (luck) has been on our side the last three matches but you have to be in games to win them," he said. "England put a lot of pressure on us and came back. It was a hell of a game and a lot of resilience shown from our boys."
Farrell was asked about the refereeing decisions.
"There is no point in talking about it now. That is for everyone else to talk about. We will control what we can control," he said.
"I thought the intent was good today but we can't let teams off that many times like we did. We got our way back into it in that second half and didn't quite finish it off."
On the stream of penalties conceded - Maro Itoje gave away five - he said: "It's the whole team's job to make sure we're all on the same page and we'll look at how to do that better."