Scotland break Welsh hoodoo
Finn Russell scored the remainder of Scotland's points after landing all seven of his shots at the posts.
Victory kept Scotland in the hunt for the Six Nations title and all but extinguished the Championship hopes of Wales for whom this was a second straight loss after their 21-16 defeat by England.
The Scots trailed 9-13 at the interval, after a try by Wales wing Liam Williams and two penalties and a conversion by fullback Leigh Halfpenny, but managed to galvanise themselves for a rousing second-half fightback in which they scored 20 unanswered points.
With Seymour and Visser both crossing and flyhalf Russell landing five penalties and two conversions, Scotland claimed their first win against Wales since 2007, ending a nine-match losing streak.
They also kept themselves in the hunt for the Six Nations title with a second win in three matches, backing up their opening day win against Ireland.
Scotland got off to the better start, Russell – given kicking duties after Scotland captain Greig Laidlaw suffered a tournament-ending ankle injury in a 22-16 defeat by France – booting them into a 3-0 lead with a penalty in front of the posts after six minutes.
Wales were level after 11 minutes, Halfpenny landing his first penalty, but they struggled to make serious inroads until immediately after a prolonged break in play in the 23rd minute.
From a quick tap on the 22-metre line, Webb drew the Scottish defence and shipped the ball left for Halfpenny to send in Liam Williams for a simple score.
Halfpenny’s conversion gave Wales a 10-3 lead and they might have gone further ahead had Webb not been guilty of a blatant tug on Seymour.
Wales were clearly on top but they were pegged back to 10-6 when Russell nailed a second penalty in the 30th minute. Halfpenny landed his second penalty four minutes later but the Toulon full-back then missed one from distance and an injury time penalty by Russell reduced the deficit to 13-9 at the interval.
The Scots took that momentum into the second-half and were 16-13 up after 44 minutes, left wing Visser popping up on the right to take a smart pass from fullback Stuart Hogg and ship the ball on to Seymour, who just squeezed past the covering Scott Williams to score in the corner.
Russell, having orchestrated the move, added the conversion but Wales threatened to hit back swiftly.
Jonathan Davies, the centre punched a gaping hole in the home defence with a crash ball break but Ali Price, Laidlaw's replacement at scrumhalf, came to the rescue for Scotland.
Wales had a chance to level the scores in the 52nd minute but, after some deliberation, flyhalf Dan Bigger kicked for the left corner rather than go for the posts and the visitors proceeded to be punished for an obstruction at the ensuing line-out.
That failure to trouble the scoreboard was compounded when Russell nailed his fourth penalty after 54 minutes, stretching Scotland's lead to 19-13.
The razor sharp Webb would have regained the lead with a blindside break had Visser not just managed to drag the Ospreys scrumhalf on to the white of the touchline.
It was Visser who then had the decisive touch at the other end, the outstanding Russell and fullback Stuart Hogg combining to tee him up for a score on the left in the 67th minute.
Russell converted and added a fifth penalty to send the home crowd home deliriously happy.
Man of the match: Tim Visser gets the award for his superb defence and scoring a crucial try.
Moment of the match: Tim Visser's try really sealed the game for Scots.
Villain of the match: The Welsh front row because of their handling errors.
Tries: Seymour, Visser
Cons: Russell 2
Pens: Russell 5
Try: L Williams
Pens: Halfpenny 2
Scotland: 15 Stuart Hogg, 14 Tommy Seymour, 13 Huw Jones, 12 Alex Dunbar, 11 Tim Visser, 10 Finn Russell, 9 Ali Price, 8 Ryan Wilson, 7 John Hardie, 6 John Barclay (captain), 5 Jonny Gray, 4 Richie Gray, 3 Zander Fagerson, 2 Fraser Brown, 1 Gordon Reid.
Replacements: 16 Ross Ford, 17 Allan Dell, 18 Simon Berghan, 19 Tim Swinson, 20 Hamish Watson, 21 Henry Pyrgos, 22 Duncan Weir, 23 Mark Bennett.
Wales: 15 Leigh Halfpenny, 14 George North, 13 Jonathan Davies, 12 Scott Williams, 11 Liam Williams, 10 Dan Biggar, 9 Rhys Webb, 8 Ross Moriarty, 7 Justin Tipuric, 6 Sam Warburton, 5 Alun Wyn Jones (captain), 4 Jake Ball, 3 Tomas Francis, 2 Ken Owens, 1 Rob Evans.
Replacements: 16 Scott Baldwin, 17 Nicky Smith, 18 Samson Lee, 19 Luke Charteris, 20 Taulupe Faletau, 21 Gareth Davies, 22 Sam Davies, 23 Jamie Roberts.
Referee: Johnny Lacey (Ireland)
Assistant referees: JP Doyle (England), Matthew Carley (England)
TMO: Rowan Kitt (England)
AFP & @rugby365com