Isaac Feaunati and Dan Scarbrough both touched down as Leeds moved up to second place in the Zurich Premiership table with a hard-fought victory over Bristol at Headingley.
Both tries came in a dull first half which was largely dominated by the Tykes, who should have had a healthier lead than 16-3 going into the interval.
The Shoguns emerged a stronger side after the break and finally started to compete on equal terms, scoring the best try of the match through Alex Brown.
Had Bristol taken their chances - they were prevented from grounding the ball when over the line on two occasions - it would have been much closer.
But the Tykes always had the edge and looked more threatening in possession, with England A full-back Scarbrough impressing in his support work and elusive running.
Bristol made a strong start. But Leeds were soon in control, denying the visitors any ball as they moved up field and eventually winning a penalty which South African fly-half Braam van Straaten slotted over.
A series of errors and infringements from both sides slowed down the game.
The Shoguns' heavyweight pack was making little impact, twice squandering good line-out ball just inches short of the Tykes' line.
Van Straaten nudged his side further ahead with another penalty before the game finally came to life in the 26th minute.
Bristol number eight Matt Salter was shown a yellow card for a professional off-the-ball foul, and Leeds made full use of the extra man with Feaunati picking up at the base of a five-metre scrum and driving over.
England winger Phil Christophers went close for Bristol shortly afterwards, chasing a punt up field before being hauled down by the Tykes' cover.
Felipe Contepomi booted a penalty - conceded by hooker Mark Regan who was also given 10 minutes in the sin bin - to narrow Leeds' advantage to 11-3. But the home side were clearly on top as they made the most of a lacklustre Shoguns
effort.
A second Tykes try seemed inevitable, and it duly came in the 40th minute courtesy of a long miss-pass from Scottish fly-half Gordon Ross who floated the ball to an umarked Scarbrough for a simple run-in and his sixth try of the season.
Bristol surged forward on the stroke of half-time, and a try looked certain as Salter dived over the Leeds line. But a great chance went begging when he was prevented from grounding the ball.
A Contepomi penalty a minute after the break kept the Shoguns in touch as they upped the tempo. Centre Martin Shaw made a neat break and almost crossed only to be cut down at the last minute by Tristan Davies.
Their cause was aided by Cameron Mather's 54th-minute sin-binning, and they finally touched down when some good work from Christophers and Shane Drahm was rounded off by second rower Alex Brown.
Contepomi added the extras. But van Straaten kicked two more penalties, and Ross booted a drop-goal to wrap up the match for the Tykes.
Teams
Leeds: Scarborough, Harder, Davies, van Straaten, Albanese, Ross, Dickens, Shelley, Regan, Kerr, C. Murphy, Palmer, Mather, Hyde, Fea'unati.
Not Used: Holt, Rawlinson, Campbell, Ponton, Hegarty, Emmerson, Hall.
Tries: Fea'unati, Scarborough.
Pens: van Straaten 4.
Drop Goals: Ross.
Bristol: Drahm, Daniel, Shaw, Gibson, Christophers, Contepomi, Pichot, Crompton, Nelson, E. Bergamaschi, Archer, A. Brown, Sturnham, Lipman, Salter.
Not Used: Johnstone, Rowland, Sheridan, Short, Higgins,
Richards, Carrington.
Tries: A. Brown.
Cons: Contepomi.
Pens: Contepomi 2.
Att: 4,420
Ref: Ashley Rowden (RFU).