三公这个官职起源于商周时期,在不同的时期其含括的官员职位名称不同,《周礼》里称“太师、太傅、太保”为三公,“师,天子所师法;傅,傅相天子;保,保安天子于德义。”
而到了秦朝时期制定了“三公九卿制”,将三公重新定义为“丞相、太尉、御史大夫”,在秦汉时期,丞相的权力相对来说比较大,帮助皇帝处理一下政务,文武百官也在他的管理之下,可以称得上是一人之下万人之上了;太尉主要负责管理军事上的事务,但是并没有实际军权,如果想要调动军队的话必须有皇帝的符节;御史大夫,负责执掌文武百官的奏章,下达皇帝的诏令,并且监督百官的一言一行,其实也可以称为副丞相。
到了西汉时期,初期承袭秦制,沿袭旧号,最高官职仍然是三公。由于丞相权力太大,权位过高,威胁到了皇帝,汉武帝为了加强中央集权,将太尉改为大司马,御史大夫改为大司空,逐渐削弱外朝的权力。到了东汉时期,三公的职位没有发生改变,但是其实际权利却在逐渐的被削弱,更多的则是代表着一种荣誉。
三国时期,太尉、司徒、 司空为三公,而将太师、太傅、太保称为了三师,其中,三公和太傅一般是虚职,没有实际权利,而大司马掌实权。
到隋唐时期,三公职位名称没有发生变化,只是实际权利有些不同。直到后周时期,又将太师、 太傅、太保设为三公。自元以后后世后代皆以太师太傅太保为三公,明仁宗之后又变为虚职。