By Bruce PopeBBC Sport Wales at the Millennium Stadium
Wales (9) 24
Tries: Roberts, Cuthbert
Pens: Halfpenny 3, Priestland
Italy (3) 3
Wales were made to toil but stayed on course for a tilt at a third Six Nations Grand Slam in eight years with a scratchy win over Italy in Cardiff.
The Azzurri defence held firm in the first half, the hosts restricted to three Leigh Halfpenny penalties.
Mirco Bergamasco landed one for Italy before Jamie Roberts charged clear to score 10 minutes into the second half.
But Wales had to wait until three minutes from time before Alex Cuthbert grabbed a second try.
Their only other score was a Rhys Priestland penalty, while Halfpenny was in the sin-bin after a clumsy challenge on Italy captain Sergio Parisse in the air.
While Wales will turn their sights to completing a clean sweep against France, the Azzurri will aim to avoid another Wooden Spoon when they take on Scotland in Rome.
Whoever wins Sunday's encounter between France and England in Paris will also have a chance of taking the title.
Official match stats
Minutes in possession
Scrums won (lost)
Line-outs won (lost)
Tackles made (missed)
(delivered by Accenture)
But a France win will see
come to Cardiff knowing victory will clinch the Six Nations, while Wales can claim the trophy and the Grand Slam on home turf if they triumph.
Halfpenny and Bergamasco, playing his first game for Italy since suffering a shoulder injury at the World Cup, exchanged early penalties.
But Wales were applying all the early pressure, although the Italian defence did well to pick up and at least half-stop charges from Jon Davies and George North in particular.
It was a red letter day for North as the 19-year-old became the youngest player in rugby history to play in 20 Tests, beating the mark set by the then 20-year-old James O'Connor of Australia.
Wales won a second penalty when a huge scrum fractured the Azzurri eight, although this time captain Gethin Jenkins - taking the armband in Sam Warburton's absence - asked Priestland to kick for a five-metre line-out.
Matthew Rees threw to Ian Evans as the front jumper but Italy defended well, albeit with a suspicion of dragging the driving maul down.
Referee George Clancy allowed that to pass but punished Italy for offside as they attempted to smother Wales' work when the backs were released to the right.
Halfpenny kicked that from in front of the posts, followed by a slightly more difficult attempt to give Wales a 9-3 lead at half-time.
A six-point lead was not the advantage that Wales' dominance deserved, with an attacking line-out the closest that Italy had come to threatening the home try line.
Ten minutes into the second half Wales got the try they deserved, seizing on a spilled ball to launch a swift counter down the left.
Roberts received the ball just inside his own half and stepped between Bergamasco and hooker Leonardo Ghiraldini to streak upfield and go under the posts.
Wales flat despite win - Gatland
Halfpenny continued his 100% kicking record with the simple conversion for a 16-3 lead.
But the full-back's fortunes dipped 12 minutes when he challenged Parisse for a high ball. The Italy skipper was left writhing on the floor and Halfpenny was shown a yellow card.
Italy enjoyed their best spell in the game but were unable to make their man advantage count as Wales held their shape and their discipline.
Gatland sent on the reinforcements to help shore things up, with the most notable the return of lock Luke Charteris for his first Test since his wrist injury at the World Cup. Ospreys youngster Rhys Webb also came on to win his first cap, replacing Mike Phillips at scrum-half.
Just before Wales came back to full strength, with James Hook getting a run out instead of Halfpenny returning, Priestland extended Wales' lead to 16 points with a penalty.
Wales were denied a second try when another defence-busting Roberts run was called back for blocking by Webb.
But a quick tap-penalty saw Jenkins feed Cuthbert - off his wing into midfield - and the wing just had the strength to slip one tackle to touch down in the right corner for an unconverted try.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.