
A superb penalty three minutes from time from substitute James Hook preserved the Lions 100 per cent tour record but this narrow victory will not have the Springboks quaking ahead of next week's first Test.
Tries from Tommy Bowe, Ugo Monye and Martin Williams were all plus points on a blustery, showery day but the inability to kill off weaker opponents will have boss Ian McGeechan worried.
A scrappy start to the game saw Western Province open the scoring through a Willem De Waal penalty but two strikes from the boot of Stephen Jones put the Lions 6-3 up.
A drop goal each from De Waal and Joe Pietersen put the hosts back in front before wing Bowe crossed for the opening try of the game, the Ospreys star showing good strength to brush off the Western defence to touch down. Jones, however, could not provide the extra points from the conversion.
And Bowe was the key man again on 35 minutes when his surging run opened the way for England's Monye to touch down. This time Jones converted to put the Lions 18-9 ahead.
But the nine-point cushion was cut to six just before the half-time break when De Waal slotted over his second penalty of the game after Andrew Sheridan was pulled up by the referee.
Another penalty from the Western fly-half closed the gap to three at the start of the second-half and despite more pressure from the home side, the tourists' defence held firm.
But slowly the Lions turned the tide and after good work from the forwards, Martyn Williams found a space in the corner to make it 23-15.
Yet more indiscipline from the Lions gave De Waal another three points and on 63 minutes the scores were level when Pietersen crossed for a try. The Lions were split by a break from lock Anton Van Zyl and the ball found its way out to Pietersen to score.
But with just three minutes remaining, the Lions won a penalty on halfway and Hook stepped up to fire over the crucial score.
The Lions have one more warm up game before the first Test and this narrow victory will have thrown up more questions than answers for McGeechan.