© Getty Images
Leverkusen pegged the champions back immediately, as Calhanoglu found Javier Hernandez from the left, before the Mexican striker placed a finish past Ter Stegen.
Messi could have added a second goal before the half-hour mark, as Jordi Alba picked out the Argentine forward in a good position, only for the 28-year-old to drag his effort wide.
After the break the hosts pushed for a goal to aid their qualification hopes, as Calhanoglu fired wide from a Hernandez cross, before Ter Stegen held a 35-yard free kick from the Turkish midfielder.
Leverkusen could have taken the lead on the hour mark, when Karim Bellarabi was played in for a one-on-one opportunity with Ter Stegen, only for the German shot-stopper to come out on top.
Ter Stegen was called into action again moments later, as the former Borussia Monchengladbach man tipped a dipping Kevin Kampl effort over the bar, before the German international kept out a deflected Bellarabi effort.
Bayer came agonisingly close to snatching victory before the final whistle, as Stefan Kiessling picked out Hernandez, only for Ter Stegen to keep the scores level.