Becchio, a second-half replacement for Davide Somma, headed Simon Grayson's side into the lead in the 66th minute and although Jon Stead levelled for City two minutes later, the Argentinian slammed home a rebound and then struck again in the 83rd minute.
City, who went into the game on the back of a five-game unbeaten run, had held their own for much of the game, but the introduction of Becchio made the difference and Leeds have now taken 10 points from their last four league matches.
Somma forced David James into a fine save in the 10th minute with a left-footed shot from 20 yards that the former England goalkeeper turned away at full stretch.
City, unchanged from the side that won at Swansea on Wednesday, went close soon after when Jamal Campbell-Ryce flashed a volley wide, but James was in action again as Max Gradel fired in a shot from outside the area and Bradley Johnson also volleyed just off target.
Johnson drilled in another long-range effort which was blocked by Liam Fontaine and Alex Bruce headed Neil Kilkenny's 33rd-minute corner just wide as Leeds pressed for the opening goal.
City enjoyed their fair share of possession and Bruce got in the way of Marvin Elliott's thumping shot before Jonathan Howson and Kilkenny both fired in shots for Leeds that were blocked, while Andy O'Brien's header was inches wide as the home side finished the first half on top.
Leeds picked up where they left off in the second half, Robert Snodgrass seeing a shot blocked and then firing over the crossbar in quick succession before Becchio and Lloyd Sam replaced Somma and Gradel respectively.
City were forced to send on Louis Carey three minutes later after Nicky Hunt sustained a nasty-looking injury and it got worse for the visitors in the 66th minute when Becchio headed home a pinpoint cross from Snodgrass into the bottom corner.
But the Robins have built impressive momentum in recent weeks and lifted themselves to hit back immediately.
Albert Adomah's cross from the right caught the Leeds defence flat-footed and Stead swept the ball home from six yards.
But back came Leeds again and in their very next attack they regained the lead. Sam let fly from 20 yards and although James got his hands to the ball, he could only parry it into Becchio's path and he slammed home the ball from close range.
The 26-year-old completed his hat-trick in the 83rd minute, powering home another header from George McCartney's left-wing cross.
Leeds goalkeeper Kasper Schmeichel brilliantly tipped Steven Caulker's stoppage-time header over the crossbar and then pulled off another superb save to deny City substitute Brett Pitmann in the 93rd minute, but Leeds were already home and dry.
Leeds Schmeichel, Connolly, Bruce, O'Brien, McCartney,Kilkenny, Howson (Paynter 90), Johnson, Snodgrass,Somma (Becchio 60), Gradel (Sam 60).
Subs Not Used: Brown, Collins, Hughes, McCormack.
Goals: Becchio 66, 70, 83.
Bristol City James, Carey (Hunt 65), Caulker, Fontaine,McAllister, Adomah, Elliott, Johnson (Rose 81), Campbell-Ryce,Haynes (Pitman 56), Stead.
Subs Not Used: Gerken, Clarkson, Skuse, Cisse.
Goals: Stead 68.
Ref: Phil Crossley (Kent).