The Lions emerged from a testing tour match in Dunedin with a morale-boosting victory a week before the first Test.
A Will Greenwood try drew the visitors level at 13-13 at half-time after Danny Lee's earlier try put the hosts ahead.
But a second score from Ryan Jones, outstanding on his first tour start, edged the Lions ahead before Shane Williams' third try clinched victory.
Charlie Hodgson added 15 points in a 100% kicking display, while Nick Evans kicked the rest of Otago's points.
Hodgson was again impressive with his all-round game but one missed tackle in the build-up to Lee's try blotted his copybook.
But in a largely second-string side, Jones was the major bonus for the Lions, pushing himself into contention for the Test 22.
Irish flanker Simon Easterby also did his chances no harm with another solid outing in his second game in four days.
The Lions were under the cosh for the opening 15 minutes as Otago started with a bang.
Prop Matt Stevens was penalised for going down at the first scrum and Evans kicked the home side in front in the fifth minute after some poor defence had allowed left wing Matt Saunders to cut through.
Evans then hit an upright with a long-range effort after Martyn Williams was penalised for coming in at the side of a ruck.
And when compatriot Jones went too high with a tackle on Evans moments later, the fly-half picked himself up to make it 6-0.
But the Lions started to gain possession and put some pace into their game, bringing the back three of Geordan Murphy, Denis Hickie and Williams into play.
Hodgson halved the deficit when the home side fell offside, and drew the Lions level with a superb penalty in the 22nd minute after another Otago infringement.
The Lions looked to be asserting themselves but passes from Greenwood to Hodgson, then Hickie to Murphy, failed to hit their target, slowing their momentum.
They were made to pay when more sloppy defence saw Otago score the first try six minutes before half-time, following a poor kick by Shane Williams.
Hodgson kicked six out of six
Centre Neil Brew burst through Hickie's tackle on the blind side and then brushed off Hodgson's weak attempt before sending Lee over, Evans converting for a 13-6 lead.
But the Lions went in level thanks to a clever piece of play by Hodgson.
The fly-half feigned to kick a penalty into touch near the left corner, but instead looked up and sent a cross-kick towards Greenwood on the far side of the field.
The centre got the luck of the bounce to score, and Hodgson added the extras after Greenwood took exception to Brew's late challenge as he touched down.
Otago edged in front again on the resumption with a third Evans penalty, Martyn Williams fortunate to escape a yellow card for the latest high tackle on the fly-half.
But the Lions started to exert some pressure in the scrum and hit back with a second try after 52 minutes.
Shane Williams took the ball at stand-off and sent Jones powering through on a superb angle to the line, Hodgson converting for a 20-16 lead.
Otago refused to lie down though, and another Evans penalty brought them to within a point.
The Lions brought on Andrew Sheridan, Steve Thompson, Danny Grewcock, Matt Dawson and Ollie Smith for the final quarter.
And the tourists finally showed their class when Jones took a quick penalty and burst through two tackles.
Quick hands through the backs saw Murphy feed Williams, who stepped inside the last defender to score.
Hodgson converted before being replaced by O'Gara, who nearly created two more tries, Easterby and Murphy just failing to reach his clever kicks.
Otago: Glen Horton; Hayden Pedersen, Neil Brew, Seilala Mapusua, Matt Saunders; Nick Evans, Danny Lee; Craig Dunlea, Jason MacDonald, Carl Hoeft; Tom Donnelly, Filipo Levi; Grant Webb, Josh Blackie, Craig Newby (captain).
Replacements: Jed Vercoe, Jeremy Aldworth, Andrew McClintock, Alando Soakai, Chris Smylie, Ryan Bambry, Jason Shoemark.
British and Irish Lions: Geordan Murphy; Denis Hickie, Will Greenwood, Gordan D'Arcy, Shane Williams; Charlie Hodgson, Chris Cusiter; Matt Stevens, Gordon Bulloch, Graham Rowntree; Donncha O'Callaghan, Simon Shaw; Simon Easterby, Martyn Williams, Ryan Jones.
Replacements: Steve Thompson, Andy Sheridan, Danny Grewcock, Michael Owen, Matt Dawson, Ollie Smith, Ronan O'Gara.
Referee: Lyndon Bray (NZ)