Edoardo Bove fired Roma to victory in the 63rd minute at the Stadio Olimpico, allowing Mourinho's side to take a slender lead into next week's second leg in Germany.
The win gives Mourinho the chance to reach his second European final in as many years as Roma coach after winning the Europa Conference League last season.
"It's all down to the boys tonight who played with desire and the right mentality," Mourinho told Sky Sport.
"I have put in a lot of miles over the course of my career but even I really felt the support of the fans tonight and the boys responded with the desire to make them happy."
Roma took the win despite having a host of players either out or barely fit to play, with stars Paulo Dybala and Georginio Wijnaldum only coming on in the final 15 minutes to help out an exhausted, largely second-string team.
"Roma were a bit more dangerous in the second half, but we had the feeling that we could beat them in their own backyard," said Leverkusen goalkeeper Lukas Hradecky.
"It's not the best result for us but it could have been worse."
Juventus draw with Sevilla
Federico Gatti scored with a header seven minutes into added time to earn Juventus a 1-1 home draw against Sevilla in their Europa League semi-final first leg.
Europa League kings Sevilla ignored the heavy rain and the pressure of the Italian crowd at a packed Allianz Stadium to dominate the game and looked well on course continue their bid for a record-extending seventh title before Gatti's last-gasp effort left the tie evenly poised.
Sevilla started strongly and Juve goalkeeper Wojciech Szczesny made a brilliant save to stop Youssef En-Nesyri's close-range header.
Lucas Ocampos missed a sitter for the visitors but Morocco striker En-Nesyri scored with a tidy finish from close range in the 26th minute after a quick counter-attack led by Ocampos.
Sevilla could have extended their lead before the break but En-Nesyri and Ocampos wasted good chances and Szczesny denied a thunderous strike from distance by Ivan Rakitic with a superb diving save.
Toothless Juventus recorded their first shot on target in the 65th minute when substitute Samuel Iling Junior tried his luck from distance with a tame strike that Sevilla goalkeeper Yassine Bounou easily held.
Juventus were energised by substitute Federico Chiesa, who is still working his way back from a long injury layoff, and equalised with the last play of the game.
Chiesa won a corner, Paul Pogba headed the ball into a crowded six-yard box and Gatti jumped high to head home the equaliser.
"We made some wrong choices up front and Sevilla knew how to stand against us tonight with a good mentality," Juventus coach Massimiliano Allegri told Rai.
"It was good that we held-on for some time and didn't end up 2-0 down. Now in Seville there is a chance to get a result."