Bundesliga leaders Bayern Munich on Wednesday booked their ticket to the German Cup final for the third consecutive time after eliminating Eintracht Frankfurt 2-1.
Bayern were the first off the blocks with a 14th-minute opener through Ivan Perisic after Thomas Mueller set him up with a beautiful chip.
The German record champions gained momentum and should have doubled their advantage through Kingsley Coman, who missed an empty goal in the 26th minute.
Frankfurt lacked in penetration and left Bayern custodian Manuel Neuer without work in the first 45 minutes.
The visitors came back from the break recharged side and started troubling Bayern and it came as no surprise when in the 69th minute substitute Danny da Costa drilled a loose rebound from the edge of the box into the top left corner.
Bayern responded firmly five minutes later when Joshua Kimmich's square pass found Lewandowski, who poked home at the far post from a tight angle. The goal was at first ruled offside but later confirmed by the video assistant referee.
Bayern face Bayer Leverkusen in the final in Berlin's Olympia stadium on July 5.
"We did not play well in the second half. The first half was good but we should have scored more goals. Ultimately, I am happy that we reached the final," said Bayern head coach Hanis Flick.
"Bayern were clearly the better team in the first half. We improved our performance in the second and restored parity deservedly," Frankfurt head coach Adi Hutter said