The Spanish side flew out of the traps, with Roberto Soldado spurning two early chances but then making up for it by setting up the opener.
He lifted the ball over the top for Cedric Bakambu and the Congolese forward made no mistake by slotting past the advancing Bernd Leno.
It was almost two before the break, but once again Leno got the better of Soldado in the 40th minute.
The hosts soon doubled their lead after the interval, though, and it was Bakambu on target again, racing clear of the Leverkusen defence and sliding the ball under Leno.
Leverkusen rarely troubled the hosts' backline and could have been three down ahead of next week's second leg, but Leo Baptistao saw his late header denied by Leno.
Things then got worse for the German side just before the full-time whistle when Tin Jedvaj was sent off for a second yellow card.