On a freezing wet day in west London, May took advantage of two moments of magic to race over as England claimed a 15th successive home victory in the competition to stay joint top of the standings with Ireland.
England led 12-3 at the interval and although Wales threw everything at them in the second half, Eddie Jones's disciplined side produced a resolute rearguard action.
Gareth Anscombe's late penalty gave Wales a glimpse of victory but England held out.
World Cup
Farrell celebrates England win: We know we can be dangerous
19/10/2019 AT 10:19
Ultimately the outcome was decided by tiny margins over 80 brutal minutes and Wales could feel justifiably hard done by.
Anscombe, playing at fullback in place of the injured Leigh Halfpenny, had a try controversially disallowed before the break after the video referee adjudged he had not grounded the ball.
England were also indebted to an astonishing try-saving tackle by replacement flanker Sam Underhill who denied Scott Williams what looked like being a certain score in the corner.
"It was a good old-fashioned arm wrestle today but we're getting good at winning those arm wrestles," Jones said.
"It's great to see that when we're not quite at our best we are getting the results. I never thought it would be a routine win. Wales are tough, well-coached and a good side."
England got off to a flying start and were a try to the good with only three minutes on the clock.
Anthony Watson got the better of Rhys Patchell to knock back a 50-50 high ball and when Owen Farrell gathered he instantly spotted a yawning gap behind Welsh lines.
His grubber kick was perfect and there was only going to be one winner as May raced through to gather and dive over.
Farrell missed the conversion and Patchell failed with a long-range penalty for Wales before England launched a concerted assault on the Welsh line.
Wales defended desperately for phase after phase in front of their own posts but eventually were breached in the corner when an audacious offload by lock Joe Launchbury opened the door for May to dash over for his second try.
This time Farrell kicked the conversion.
Patchell's grubber kick put Anscombe in a race with Jonathan Joseph and although the Welshman appeared to have got the touchdown the video referee saw it differently.
Patchell's simple penalty was all Wales had to show for their efforts at halftime.
England made a change at the interval with Underhill replacing Sam Simmonds in the back row and they were forced into another substitution when Watson tweaked a hamstring and was replaced by Jack Nowell.
Wales could make little headway as handling errors and ferocious England tackling frustrated their efforts.
Winger George North replaced Patchell with 25 minutes left and Wales were in the ascendancy without ever opening up the hosts.
Even when they did Williams was denied by Underhill's heroic last-ditch tackle and England, with all eight replacements on the pitch, had just enough in the tank to hang on for their 24th win in 25 games under Jones.
World Cup
Dominant England crush Australia to reach World Cup semis
19/10/2019 AT 09:07
Folau sacked by Rugby Australia over social media post
17/05/2019 AT 05:11