自从北宋建国以来,辽国就开始虎视眈眈地盘踞于宋朝的北方,随时准备挥军南侵。如此一来,就形成了宋辽南北对峙的局面。其实在澶渊之盟以后,宋、辽两国维持了长达一百年的和平时间,因为双方都没有消灭对方的实力和能力,只好暂时保持和平状态。

直到政和五年(1115年),在女真人领袖完颜阿骨打的带领下,女真族开始起兵反抗辽国的统治,并统一了女真族的各个部落,建立了金国。紧接着,又在很短的时间内攻打下了辽国的北方首都上京。就这样,金辽之间爆发战争。宋朝得到这一消息后,朝野上下均认为金国会取代辽国,辽国势必会走向灭亡。于是,宋廷决定联合金国,攻打辽国。这样不仅可以向金国示好,还可以趁机收复失去已达两百年的燕云十六州。

宣和元年(1118年),赵佶便派武义大夫马政由登州(今山东蓬莱)渡海出使金国,并向金太祖完颜阿骨打传达了宋朝想与其通好,并共同征伐辽国的意向。从此,双方开始频繁接触。宣和二年(1119年),赵佶又派遣赵良嗣(本名马植,祖籍河北,世代为辽国大族)以买马名义再次出使金国,缔结联金攻辽的盟约。临行之前,赵佶给金国写了一封书信,信中这样写:“据燕京并所管州城,原是汉地,若许复旧,将自来与辽国银绢转交,可往计议,虽无国信,谅不妄言。”

其实,按照赵佶的本意是想要收回燕云十六州。但是在书信中,他却只提到了燕京所管辖的州城。现在看来,这种言辞无异于自缚手脚。因为在与金人谈判的过程中,虽然赵良嗣尽量扩大燕京的管辖区,要求将西京和平州、营州都包含进去,也就是收复长城以南的所有土地。但是金人却以此地不属于燕京管辖为由,断然驳回了这个要求,于是谈判陷于僵局。无奈之下,双方只好都做出了让步,即约定届时由金国攻取辽国中京(今内蒙古宁城西),宋朝攻取燕京一带。待取得胜利后,燕京所有地区均归宋朝所有,但是要每年赐给金国二十万两银、三十万匹绢给金。等赵良嗣回到京师复命的时候,朝廷才知道这是作茧自缚的结果。

于是,再次派出马政前去报聘。这一次,赵佶长了记性,在书信中特别注明了燕云十六州。没想到,金国的态度变得十分蛮横,并表示:“如果宋朝一而再、再而三地提高要求,那么就只能解除约定。”对此,宋朝不好再继续闹下去,只好暂时忍气吞声,全力配合金国。

宣和四年(1122年),金人联合宋朝一起攻伐辽国。这时候,辽国天祚帝耶律延禧已在金人的猛烈追击下,仓皇逃到了夹山之中。国不可一日无君,很快辽军又拥立耶律淳为天锡皇帝,苦苦支撑这一残局。而童贯由于成功镇压了方腊起义军,正踌躇满志。他天真地以为,只要宋军北伐,耶律淳就会望风迎降,幽燕故地也可稳稳进入囊中。于是,他信心满满地建议赵佶尽快派军队挥师北上。同年四月,赵佶任命童贯为河北河东宣抚使,令他率军挥师北上;五月,赵佶又任命蔡攸为两河宣抚使,与童贯共同率领大军。在童贯认为,这样的安排颇为完美,收复燕云之地也势在必得。

但是,当童贯到达河朔以后,看到的却是另外一个场面。由于这里多年不曾有过兵戈战乱,这里的驻军十分骄懒,根本没有一点作战的状态。更夸张的是,就连当年为了阻挡辽国骑兵而构筑的塘泊防线也都水源枯竭、堤防废坏。但是兵已至此,童贯也不能立即打道回府,只好硬着头皮继续进军。他先是派人前去劝降耶律淳,却被对方斩杀。劝降的策略不行,他又下令宋军张贴皇榜,宣传吊民伐罪的意图。

童贯率领的大军很快抵达高阳关(今河北高阳东),他立即命都统制种师道率领东路大军进攻白沟,辛兴宗率领西路大军进攻范村。种师道是西北地区的一位名将,在他看来,此次征伐辽国是乘人之危的不义之战,于是采取的完全是消极态度。当种师道得知前军统制杨可世在兰甸沟被辽军打败,后来又在白沟被辽军围攻败退的时候,他就有撤军的想法了。而这时候,辛兴宗也在范村被辽军击败。于是,种师道下令撤军雄州(今河北雄县)。此时的辽军趁势追击,在城下双方展开激战,宋军损失严重。赵佶听说这件事之后,立即转变了对辽军的态度,从一开始的蔑视转为畏惧,急忙下诏命令北伐大军班师回朝。而童贯为了避免承担责任,就把指挥无方的责任全部推脱到了种师道等人身上,致使愤怒的赵佶将这些人统统贬谪到了外地。

同年七月,耶律淳病死,其妃萧德妃以太后的身份开始主政。这时候,宋朝的宰相是王黼,他得知此事后,便鼓动赵佶命童贯、蔡攸再次北上伐辽,并用刘延庆代替了种师道的将位。金人得知宋军再次举兵伐辽,害怕宋军一鼓作气,率先攻取了燕京,他们就得不到宋朝的岁赐了。于是,立即派遣使者前去与宋军商约伐辽的战期。宋朝这边再次派遣赵良嗣出使金国,讨论双方履行约定的相关事宜。

因为有前车之鉴,刘延庆率领的十万大军并不急于作战,而是停滞不前。而这时候,辽国涿州的守将郭药师看到辽国朝不保夕的局势,开始为自己的前途做打算。随后,郭药师便率领常胜军八千人以涿州(今河北涿县)、易州(今河北易县)两座城池为条件归降宋军,被划归到刘延庆麾下。因为不费一兵一卒就得到了两座城池,赵佶就有点儿得意洋洋,忘乎所以了,不但重赏了郭药师,还亲笔把燕京改为燕山府,其他八个州县也都一一赐名,似乎一府八州已经唾手可得了。

这时候,童贯又派遣刘延庆和郭药师率领十万大军渡过白沟,攻伐燕京。大军在行至良乡(今属北京)时被辽军将领萧斡率领大军堵截,正好在卢沟以南屯兵扎寨。郭药师自荐表示愿意率领六千骑兵趁着敌后空虚之际,在夜晚偷袭燕京。但是,刘延庆需要派他的儿子刘光世率领部队前去接应。郭药师率领军队攻入燕京后,就与辽军展开了血战。然而,因为刘光世没有前去接应,最后导致郭药师的军士死伤过半,仅有几百个骑兵慌忙中逃了回来。

就在这个时候,辽将萧斡已经让人截断了宋军的粮道,并且扬言自己拥有三十万大军,将以举火为号,一鼓作气歼灭宋军。刘延庆看到这种阵势,顿时吓得不知所措起来,看到辽军中闪现的火光,就什么也不顾地自己烧毁了大营,仓皇向南逃去。第二天,宋军在白沟被追赶而来的辽军再次打败,无奈之下,退到了雄州以求自保。经此一役,宋军就把王安石变法以来所积蓄的军用储备消耗殆尽,而由童贯所主导的两次北伐战争也在这次战斗中宣布破产。

那么辽国和金国呢?一个即将覆灭的辽国竟然能够在此次战争中大获全胜,金国也通过此次战斗彻底看清楚了宋朝在军事上的短处。这时候,金太祖完颜旻(阿骨打)已攻下了辽国的中京和西京(今山西大同)。到年底,阿骨打又御驾亲征,率领大军攻克了燕京。他看到宋军一再败退,所以在对待使者赵良嗣的态度上也是越来越傲慢、强硬。而赵良嗣在奉命与金国谈判履行约定交割地盘的相关事宜的时候,他心里也知道金人得寸进尺,明显是想毁约,但是宋军那边节节失利,军事上根本强硬不起来,致使他在谈判桌上也就彻底没有了底气。最后,经过来来往往的几次讨价还价,金国下了最后的通牒,即金国只将燕京六州二十四县交割给宋朝,而宋朝每年除了向金国上交原来答应的五十万岁币以外,还必须补交一百万贯作为燕京的代税钱,如果半个月内宋朝这边没有答复的话,金国就将采取强硬的军事行动。

宣和五年(1123年)正月,赵良嗣带着金国的要求回到京师复命。赵佶不得不答应了金国提出的全部要求,不过他还让赵良嗣再次出使金国,要求归还西京;金国又趁机向宋朝敲诈了二十万两的犒军费,宋朝也只好一一答应。更过分的是,金国虽然照单全收了银两,却拒绝交还西京。同年四月,双方进入交割阶段。首先是燕京,金国军队进城已经有半年之多了,而且知道这座城池最终是要归还宋朝的,便开始大肆洗劫财物,致使城中居民逃匿,十室九空,俨如一座空城。金军撤走的时候,又将富民、金帛、子女捆载而去。也就是说,童贯、蔡攸接收的完全是一座残破不堪的燕京空城而已。

其次是蓟(今河北蓟县)、景(今河北遵化)、檀(今北京密云)、顺(今北京顺义)、涿、易等六州,同样也遭受了相似的命运,而且其中的涿、易二州还是主动降宋的。尽管如此,赵佶君臣还是自我陶醉的,王黼、童贯、蔡攸、赵良嗣等人都被作为功臣加官进爵。除此之外,赵佶还下令让人撰写了《复燕云碑》,以此来为自己歌功颂德,因为在他看来,宋太祖、宋太宗没有完成的事业,在他这里总算完成了。

至此,宋金双方的海上之盟就算交割清楚了,但因为宋朝所得到的并不是全部的燕云故地。所以,总有些不甘心。后来赵佶又派遣宦官谭稹为两河燕山府宣抚使,前往负责收回,朔、应、蔚州的守将向宋朝纳款请降,而金国因为金太宗完颜晟(吴乞买)刚刚即位,辽天祚帝也在逃亡之中,根本顾及不到山后的九州,于是在十一月的时候,同意割让武、朔二州给宋朝。到了这个时候,宋朝实际控制的范围仅仅只有山后的四州,又因为金国的元帅完颜宗翰坚决反对交出山后的各个州城,宋朝也不敢再作交涉,此事只好作罢。

宣和六年(1124年)三月,金国已经缓过神来,就派人到谭稹那里索要二十万石军粮,说是赵良嗣已经答应过的。但是,谭稹却以空口无凭为理由,直接拒绝了金国的要求。这就致使金国上下恼羞成怒,再加上宋朝收留了张觉(原为辽国将领),他们更是对宋朝怨恨至极,如此便给金国留下了挥军南下的借口。同年八月,金国军队便攻下了宋朝控制的蔚州,宋金战争一触即发。