刘知远原来是后晋的河东节度使。在契丹与后晋互相攻伐时,刘知远采取观望的态度,据守本境。后晋将领杜重威投降契丹贵族后,一部分后晋军逃归河东,增强了刘知远的势力,契丹贵族耶律德光攻入后晋都城开封称帝时,刘知远有步骑五万多,他一面分兵把守河东四境,以防契丹军侵入,一面派部将王峻以进贺表为名,三次入开封刺探辽的国情。王峻先祝贺契丹攻入开封;又陈述太原夷夏杂居,戍兵所聚,故刘知远刘知远不能亲自至开封向耶律德光当面祝贺,三上贡物之表。辽太宗耶律德光虽知刘知远刺探之意,但为了拉拢河东势力而赐刘知远木柺,以表示优礼与器重。同时派遣使臣问刘知远:“汝不事南朝,又不事北朝,意欲何所依也?”刘知远部将以为辽主已猜忌河东,情形危机,劝刘知远迅速起兵反辽。刘知远分析了当时的形势,以为“用兵有缓有急,当因时制宜。今契丹新降晋兵,虎居京邑,未有他变,岂可轻动?且观其(契丹)所利,止于货财,货财既足,必将北去。况冰雪已消,势难久留,宜待其去,然后取之,可以万全。”刘知远以静制动的计策取得了成功,并为其建立后汉打下了基础。在耶律德光在开封称帝后,刘知远也在晋阳(今山西太原)称帝。为了收揽人心,刘知远称帝而不建国号,并继续使用后晋高祖石敬瑭所用的年号,以示不忘晋朝。辽太宗耶律德光听说刘知远称帝便下令削夺刘知远的官爵,并派耿崇美为潞州(今山西襄垣县)节度使,高唐英为相州(今河北临漳县)节度使、崔廷勋为河阳(今河南孟县西)节度使,包围河东地区。在与辽的争战中,刘知远以迎晋出帝(即石重贵)到晋阳为名出兵抗辽。其下诏令河东各处官吏,不得搜刮百姓的钱帛贡奉契丹,处死所辖地区残酷剥夺百姓的契丹族官吏,慰劳表彰农民及武装抗辽的民众。刘知远的措施与辽在开封附近大肆掠夺的政策形成明鲜的对照,因而获得了民众的支持,后晋的旧臣武装纷纷归附刘知远,为灭辽出谋划策。河东境内及其它地方的民众也纷纷组织起义军,到处攻杀辽的守军,抢占城镇。一些被迫投降辽的后晋官吏此时也杀辽官而降刘知远,并以此谋求官位。刘知远在民众的支持下,先打破了辽的围攻,他支持潞州权知留后王守恩击退耿崇美的进攻。辽所派相州节度使高唐英尚未到任,州镇早已为梁晖占据。会同十年(946年)年末,辽太宗终因中原地区民众起义此起彼伏,无法控制及契丹人不习惯中原水土等原因而仓惶撤军北返。刘知远闻知辽军撤离开封,则召集大臣商议进取之策,诸将认为应出师井陉(今河北井陉),改取镇(今河北正定县)、魏(今河北大名一带),先平定河北,河北定则河南不战自服。部将郭威力排众议,以为出兵河北,兵少路迂,又无应援,难以制胜。他主张先平定陕、晋,后攻汴、洛。刘知远抓住战机,依照郭威的计策,委派自己的弟弟刘崇镇守太原,自己则亲率大军由太原出阴地关(今山西灵石县西南)至晋(今山西临汾县)、绛(今山西新绛县),安定了陕、晋后方,又委派部将史弘肇为先锋,攻进汴洛。史弘肇治军严明,兵卒人人奋勇,一路所向披靡。辽守将闻刘知远进攻,纷纷弃城北逃。洛阳守将刘晞在刘知远发兵的前两天便弃城而逃往大梁(今河南开封附近)。刘知远自太原发兵,仅用了21天便占领洛阳。在洛阳下令改国号为汉,即后汉,仍续用后晋石敬瑭天福年号,刘知远则为北汉高祖。自洛阳进军开封,一路畅行无阻。刘知远入开封后,后晋时的藩镇相续降汉称臣,黄河以南的州镇名义上归后汉所有。
刘知远建后汉后,辽将麻答仍磐居黄河以北的恒州(今河北正定县),对当地人民实行残酷的统治,深为当地百姓所憎恨。及至刘知远入开封的消息传到恒州,当地百姓则群起驱逐麻答与辽人。麻答率辽人逃往定州(今河北满城县),与定州辽守将耶律忠(即耶律郎五)合兵。天雄节度使、后晋的叛将杜重威亦与麻答勾结,磐据魏州抗击后汉。刘知远率兵亲攻魏州,杜重威力竭投降,刘知远杀杜重威,魏州归后汉所有。乾祐元年(948年),麻答与耶律忠慑于定州民众起义,弃城而逃归辽国,定州也被收复。后晋末陷入契丹的州县至此已全部为后汉所有。