The 24-year-old was reportedly close to signing for Bayern last year before suffering a knee injury.
Sky Sports and the BBC say the two clubs have agreed a fee of £54.8 million (59.97 million euros, $67.36 million), with German daily Bild reporting a fee of "at least 50 million euros".
Bild said Sane will sign a five-year contract at the German champions, with the transfer fee far lower than the 100 million euros mentioned last year.
Sane's contract at Manchester City is due to run out in June, 2021.
Sports magazine Kicker said a deal is "near".
The Germany international made his first Premier League appearance of the season as a substitute against Burnley last week.
He has scored 39 goals in 135 matches in all competitions for City since joining from Bundesliga club Schalke in 2016.