Johnson hjälpte Robins undvika nedflyttning förra säsongen efter att ha gått med dem från Barnsley i februari.
35-åringen, som spelade 199 matcher för City mellan 2006 och 2012, började sin chefskarriär med Oldham 2013, innan han flyttade till Oakwell 2015.
Hans tidigare kontrakt på Ashton Gate var satt att avslutas i slutet av 2018-19 säsongen.
"Som jag sa när jag utsågs, Bristol City är den perfekta klubben för mig", berättade han klubbens hemsida.
"Vi vill leverera framgång; allt om klubben är progressiv och det är därför jag är desperat att vara en del av det på lång sikt."
Bristol City har vunnit bara en av sina senaste sex matcher i alla tävlingar, men de är 11: e i Championship bordet, bara fyra poäng utanför play-off platser.
Bristol Citys huvudtränare Lee Johnson har tecknat ett nytt avtal om att stanna hos Championship Club fram till 2020.