张冠李戴的前身是讽刺武则天的俗语“张公吃酒李公醉”,说到是武则天宠爱张昌宗、张易之,国号也被她改为周,她的儿子李显也被废黜。据说有一次酒宴上,张昌宗、张易之两兄弟饮酒饮得高兴,而李显却独自一人喝闷酒,结果就喝醉了。
在唐代的时候,由“张公吃酒李公醉”演化出另外一个俗语“张公帽儿李公戴”,也是用来讽刺武则天的,表示她将自己丈夫李治的帽子戴到了“二张”的头上。在“张公帽儿李公戴”这个俗语被流传之后,经过演变成为了张冠李戴,意思也改变了很多。
宋朝的时候,因为张冠李戴这个成语,还演变出了许多相似的谚语,比如“张三有钱不会使,李四会使却无钱”。许多成语和俗语中的张和李,几乎都是源于“张公吃酒李公醉”。张冠李戴现在一般用来比喻弄错了对象,或是弄错了事实。