A raucous atmosphere greeted both sets of players on the pitch as Blades searched for a return to the top flight after two years, while Forest looked to end their 23-year absence.
The visitors opened the scoring in the 10th minute courtesy of Colback’s rebound effort with their first foray into the opposition half.
They could have been further in front but for Wes Foderingham in the Blades net, who denied clear-cut efforts from Sam Surridge and Johnson to keep the score at 1-0 going into the break.
In contrast, Forest attacks were few and far between in the second period; Joe Lolley capitalised on a defensive error to help Johnson make it two but Blades responded late to give them a glimmer of hope heading into the second leg thanks to a header from Sander Berge.
The opener came when Joe Worrall sent Surridge scampering down the field, his squared ball from the byline found Philip Zinckernagel aided by a Ben Osborn slip. His initial effort was brilliantly saved by Foderingham before Colback latched onto the rebound and finished from close range which caused bedlam among the travelling Reds supporters.
Minutes later, the Blades almost responded when a corner kick floated in from the right found the head of John Egan, but his goalbound header was cleared off the line by Surridge to retain Forest’s lead.
Neither side fell victim of taking a stereotypical cautious approach to a two-legged play-off tie.
Frustration began to grow around Bramall Lane and the visitors came close to a second when some neat link-up play found Zinckernagel with the ball at his feet before picking out Surridge, in acres of space just 10 yards out, but he could only direct his shot at Foderingham.
Reds boss Steve Cooper must have been wondering how his side were only a goal to the good after Manchester United loanee James Garner picked out an unmarked Jerry Yates, who glanced narrowly wide of the far post from eight yards.
The hosts had keeper Foderingham to thank for not going into the break more than a goal down when he did well save to Surridge’s close-range effort before getting up well to deny Johnson on the follow-up.
The second half started in the end-to-end fashion that was on show in the first period.
The Blades responded to the words of Paul Heckingbottom at the break and forced a couple of chances when Morgan Gibbs-White touched to Sander Berge, but he fired over from inside the area, and Gibbs-White curled an effort straight into the grasp of Brice Samba moments later.
While second-half chances were few and far between for the visitors, they finally doubled their advantage in the 71st minute to settle any nerves of paying for their flurry of missed chances before the break.
Lolley’s first contribution after coming off the bench was to dispossess Egan on the last line of defence before he squared to Johnson who finished emphatically in the top-right corner.
United got a goal back in the tie in stoppage time when Berge nodded into an empty net after keeper Samba found himself in no man’s land not for the first time in the contest to set up a thriller heading back to the City Ground on Tuesday.