公元979年,趙光義率大軍分四路向北漢進攻,並吸取了以往失敗的教訓,特派部分宋兵前往阻截遼援軍。宋軍很快就攻到北漢都城太原城下,將太原圍得個水泄不通。5個月後,北漢將士紛紛出降,北漢皇帝劉繼元見大勢已去,隻得開門迎降,北漢滅亡。至此,五代十國的割據局麵全部結束。
趙光義攜滅北漢之餘威,率大軍繼續北上伐遼,兵不血刃地收得易、涿二州。旗開得勝,趙光義非常高興,於是率大軍進抵遼之南京(今北京市)城南,命將士分四路攻城。然而此時的宋軍已是強弩之末,長時間的征戰已使得他們疲憊不堪,在遼援軍到來之後,競被遼守軍和援軍共同夾擊,全軍潰散,趙光義在眾將護衛下,南逃涿州,方才避免被擒。
7年後,趙光義又想再度北伐,企圖扭轉高梁河慘敗之後頻頻挨打的被動局麵,但前次親征的慘敗,特別是高梁河之戰險被遼軍所擒的遭遇,使大宗餘悸末消。於是在善於揣摩皇帝心思的大臣的勸阻下,決定派大將曹彬、米信、田重進、潘美、楊業等人於公元986年率30萬大軍分東、中、西三路北上攻遼。
初期作戰宋軍進展順利,接連小勝。但由於剛愎自用的趙光義將指揮權牢牢控製在自己的手中,從後方遙控軍隊作戰,因此造成軍令不能及時傳達,加上各路軍缺少合作,便紛紛敗下陣來。楊業率領殘兵在陳家穀奮力死戰,遼兵漫山遍野而來,楊業部下大部分戰死。楊業本人身負幾十處創傷,最後為遼軍所俘獲,不顧遼軍的威脅利誘,絕食三日而死。
楊業死後,邊境大震。雲、應、朔三州將吏棄城而逃,三州又被遼軍重新占領。遼軍又乘勝進入宋境,深入深(今河北深縣)、德(今山東德州)、邢(今河北邢台)等州,搶掠一空,使宋朝邊民蒙受重大損失。
從這次北伐失敗就可看出,趙光義基本上沒有經曆過重大戰役,缺乏鍛煉。但他又自詡高明,剛愎自用,為了控製軍隊,每次作戰前都親自擬定陣圖,結果嚴重束縛了前線將帥的手腳。所以北伐不敗才怪。
趙光義先是直目自信,在兩次北伐失敗後,他又陷入了或戰或和的兩難境地,經常在兩者之間猶豫不決。到了晚年,趙光義守內虛外政策的指導思想已經形成,這種思想影響了整個南北兩宋,致使兩宋統治者都喜歡偏安一隅,而從不主動進攻。因此,趙光義對遼由攻到守,準備和解。為了防守,命令宋軍在河北沿邊的平原上,疏浚、開拓邊地河道,以作屏障。對於遼軍的入侵,也隻準堅壁清野,不許出兵,即使是不得已出兵,也隻許靠著城布陣,再不就是以和為貴,不許先動手攻擊對方,結果束縛了軍隊將士的手腳。漸漸地,宋朝軍隊的作戰能力越來越弱了。
趙光又是五代以來第一位非武人皇帝。在結束分裂局麵後,尤其是在多次伐遼失敗後,趙光義便將時間轉移到文治上來。不過在文治方麵,他的確有很多獨到之外。他開創、修補、完善了宋朝的各項典章製度,使之基本成為定製,使宋王朝避免了像五代各朝一樣短命天折,奠定了政治、軍事、文化、經濟各方麵製度的基礎。兩宋之人多言“祖宗之法”,這“祖宗之法”即是指宋太祖宋太宗而言,其中宋大祖法度主要在於軍事、政治方麵,而宋大宗除了對宋太祖法度作了進一步完善外,又著重在文化、經濟等方麵建立了一整套法度規範。
趙光義完善了始於隋唐的科舉製度,科舉向文人知識分子廣泛開放,隻要文章、詩賦合格,都可錄取。趙光義擴大了取土的規模,每次科舉考試錄取的進士數額遠遠超過唐代及宋太祖時。趙光義還促進科舉取進士日趨嚴密、完整。在趙匡胤確定殿試後,趙光義由將其進一步完善,規定殿試後在殿前“唱名”,由皇帝分別賜予“進士及第”、“進士出身”、“同進士出身”的功名。
趙光義非常重視發展文化事業,他將昭文館、史館、集賢院等三館另遷遠比原址大得多的新址,並定名為崇文院。到趙光義晚年,崇文院的藏書已十分豐富。
趙光義還組織文人編纂了《太平廣記》與《大平禦覽》和《文苑英華》等書。這三大部書成為後人研究中國古代曆史、文學的寶貴資料。宋代的皇帝多注意從曆史上汲取統治的經驗教訓,這可以說是從太宗開始。太平興國八年(983)十一月,大宗對大臣說:“朕曆覽前代書籍,發現君臣之際,大抵情通則道合,所以有事皆無隱匿,言論都可采用。朕勵精求治,卿等作朕股肱耳目,如果施政有缺失,應當悉心上言說明,朕決不以居尊自恃,使人不敢說話。”
趙光義為政勤儉,而又不喜聲色遊獵,隻是喜歡讀書和書法。他對宗教還比較寬容,不過是重道教,輕佛教。
趙光義當上皇帝之後,用很大一部分精力來確保皇位,防範變亂。一麵防範武將專權,另一麵則是他自家人,尤其是趙匡胤的兒子武功郡王趙德昭,最後逼迫趙德昭自殺身亡,而趙光義的弟弟趙廷羌(趙光美,為避諱改名)也被逼得憂鬱而死。