函館本線（はこだてほんせん）は、北海道函館市の函館駅から長万部駅、小樽駅、札幌駅を経由して旭川市の旭川駅を結ぶ北海道旅客鉄道（JR北海道）の鉄道路線（幹線）である。

北海道最古の鉄道開業区間を含んでおり、以来本州との連絡をおもな目的として北海道における鉄道輸送の基幹を担ってきた。現在は、函館駅から旭川駅までの全区間を運行する列車はなく、函館駅 - 長万部駅間、長万部駅 - 小樽駅間、そして札幌駅を通る小樽駅 - 岩見沢駅間、岩見沢駅 - 旭川駅間の各区間でそれぞれ路線の性格が異なっている。長万部駅 - 小樽駅間以外では現在も道内の主要幹線としての使命を担っている。支線（別線）を含めた総営業キロは458.4 kmで、これは北海道で最長である。

 概要 
T…トンネル（隧道）
トンネル（隧道）・橋梁（河川）は主要なものを掲載
札幌市交通局の地下鉄および市電については以下の通り表記
南北線 東西線 東豊線 市電（廃止線区）

 
|}
函館駅 - 長万部駅間は函館市と札幌市を結ぶ特急列車や本州からの貨物列車（JR貨物による運行）のメインルートとなっている。現在、これらの優等・貨物列車は、長万部駅 - 白石駅間は室蘭本線・千歳線経由で運転している。

一方、長万部駅 - 小樽駅間はローカル線と化している。長万部駅から室蘭本線・千歳線を経て札幌方面に接続するルートを「海線」と通称するのに対して、函館本線のこの区間は「山線」と呼ばれており、通称としては「山線」の方が古くから存在する。かつては長万部駅 - 小樽駅 - 札幌駅間の山線にも多くの優等列車が往来し、昭和40年代まではC62形蒸気機関車の重連による牽引の急行列車など蒸気機関車が集結したことで、SLブーム時には賑わった。ただ小樽駅までが単線な上、急勾配・急曲線が連続する速度向上に不利な線形を抱えていた。対して、海線経由は30 km以上遠回りであるが、もともと線形も良く所要時間も短縮できるうえに比較的沿線人口にも恵まれていた。さらに山線区間は線路種別が「丙線」であり、軸重軽減対策をしていない一部の機関車は入線できない。

1960年（昭和35年）4月に運転を開始した気動車急行「すずらん」の成功に続き、1961年（昭和36年）10月ダイヤ改正で新設された道内初となる特急列車の登場以来、徐々に函館駅 - 札幌駅間のメインルートとしての役割は海線へ移り、かくして1986年（昭和61年）11月1日に定期の優等列車が山線から全廃され、その後は有珠山噴火や海線での輸送障害時の迂回、また、観光シーズンの臨時列車として優等列車が山線に入線することがある程度である。

函館駅から小樽駅までの区間は北海道新幹線の新函館北斗駅 - 札幌駅間延伸時に、函館駅 - 長万部駅間がJR北海道から第三セクターに経営移管、長万部駅 - 余市駅間についてはバス転換される見込みである。余市駅 - 小樽駅間は余市町が鉄道存続を求めていたが、自治体間の協議の結果、同区間もバス転換を容認することとなり、JR北海道の鉄道路線としては小樽駅 - 札幌駅間のみが維持され、「山線」区間は全廃、バス転換が行われる予定（「今後の予定」節を参照）。

小樽駅 - 旭川駅間は1968年（昭和43年）に完成した国鉄による道内最古の電化区間を含んでおり、札幌市と旭川市の両都市を結ぶ特急列車は道内最多の運転本数を有し、旭川を超えて網走市や稚内市まで接続するJR北海道の最重要区間である。また、札幌都市圏にあたる小樽駅 - 岩見沢駅間は近距離利用客が多いため、快速を含む普通列車が多く運転され、IC乗車カード「Kitaca」の利用エリアともなっている。2024年（令和6年）3月16日より既存の Kitaca エリアが小樽駅 - 旭川駅間に拡大されたほか、函館駅 - 新函館北斗駅間が「函館エリア」として新規に利用可能となった。

 歴史 
函館本線は、北海道の鉄道の発祥路線である。1880年（明治13年）から1882年（明治15年）までに官営幌内鉄道の手で開通した手宮駅（小樽市・現在廃止） - 札幌駅 - 幌内駅（三笠市・現在廃止）間の鉄道がそれである。

官営幌内鉄道の路線を譲り受けた北海道炭礦鉄道、北海道鉄道（初代。千歳線などを建設した2代目の北海道鉄道とは別会社）および北海道庁が運営する北海道官設鉄道によって建設され、北海道官営鉄道は1905年（明治38年）に鉄道作業局（国有鉄道）へ編入、北海道炭礦鉄道と北海道鉄道は、1906年（明治39年）に成立した鉄道国有法によって買収され、国有鉄道線となったものである。

イギリスに範をとった本州の鉄道に対して、北海道の鉄道はアメリカの技術を導入して建設されており、前面にカウキャッチャー、煙突には巨大なダイヤモンドスタックを取り付けたアメリカ式の蒸気機関車が輸入され、客車も「マッチ箱」と称される本州の4輪車に対し、開拓使号客車に代表される、木造台車を履いたボギー車が使われた。「義経」「弁慶」・「しづか」などと命名された機関車（のちの7100形）は、現在も鉄道博物館（さいたま市）、京都鉄道博物館（京都市）、小樽市総合博物館鉄道・科学・歴史館（小樽市）に保存されており、その姿を見ることができる。

大沼駅 - 渡島砂原駅 - 森駅間については、第二次世界大戦中の輸送力増強のため、急勾配の介在する駒ヶ岳駅回りのバイパスとして建設されたものである。同区間に並行して渡島海岸鉄道（森駅 - 砂原駅間）、大沼電鉄（現在の大沼公園駅 - 鹿部駅間）という2つの私鉄が存在したが、函館本線の建設に伴い買収、廃止された。

小樽築港駅 - 銭函駅間は工事の容易な石狩湾の海岸線に敷設されたが、当時は汽車の煙や火の粉が漁業に悪影響を及ぼすと考えられており、漁獲量の減った年を中心に、沿線の漁師との間でたびたび補償問題に発展したため、余市駅 - 塩谷駅間では「浜」を避けて線路が敷かれている。

戦前は青函航路と稚泊航路を介し内地と樺太を、その後も本州と道内各都市を結ぶ動脈であったが、小樽における貿易、民間航路、漁業の衰退と、金融の中心機能の札幌への移転、また、室蘭・苫小牧地区の工業の発展と歩調を合わせた室蘭本線・千歳線の改良により地位の低下が始まり、道内初の特急である「おおぞら」をはじめ、新規の優等列車は「海線」経由で設定されることが多くなっていった。

さらに、航空路線の拡充に伴い、国鉄は本州連絡に関しての競争力を失い、その末期には、函館駅から扇のように展開していた道内の特急網も、札幌を起点とする方針に改められ、1986年（昭和61年）10月をもって長万部駅 - 札幌駅間の優等列車はすべて廃止となった。

1960年（昭和35年）から15年計画で行なわれた蒸気運転全廃に向けた動力近代化計画では、函館駅 - 長万部駅間も電化計画に含まれていたが、石炭輸送衰退の影響で、新函館北斗駅 - 長万部駅間の電化は室蘭本線東室蘭駅 - 長万部駅間とともに現在でも実現していない。非電化区間としては特急および貨物列車の本数が多く、七飯駅 - 森駅間の8の字区間を除いたほとんどの区間で複線化も行われている。

1994年（平成6年）には、かつての運炭線であり、函館本線最後の盲腸線となった上砂川支線が、利用客の減少により廃止された。

 年表 

 官営幌内鉄道→北海道炭礦鉄道幌内線 

 1880年（明治13年）
 間が試験開業。
 11月28日：官営幌内鉄道の手宮駅 - 開運町駅 - 札幌駅間が仮開業。同区間に手宮・開運町・朝里・銭函・軽川・琴似・札幌の各駅を新設。
 1881年（明治14年）5月22日：開運町駅を住吉駅に改称。
 1882年（明治15年）11月13日：札幌駅 - 岩見沢駅間の延伸開業に伴い、官営幌内鉄道の手宮駅 - 幌内駅間が全通。同区間に江別駅および幌向太・岩見沢の各フラグステーションを新設。
 1883年（明治16年）：幌向太フラグステーションを一般駅に変更し、幌向駅に改称。
 1884年（明治17年）8月15日：岩見沢フラグステーションを廃止。岩見沢駅を新設。
 1889年（明治22年）
 11月3日：野幌駅を新設。
 12月11日：官営幌内鉄道が北海道炭礦鉄道に事業譲渡。北海道炭礦鉄道幌内線となる。
 1891年（明治24年）7月5日：岩見沢駅 - 砂川駅間が延伸開業。同区間に峰延・美唄・奈井江・砂川の各駅を新設。
 1892年（明治25年）2月1日：砂川駅 - 空知太駅間が延伸開業。同区間に空知太駅を新設。
 1894年（明治27年）8月1日：厚別駅を新設。
 1898年（明治31年）7月16日：北海道官設鉄道上川線の空知太駅 - 旭川駅間が開業。同時に砂川駅 - 空知太駅が北海道官設鉄道に借上。空知太駅を廃止（両者の接続点として名称のみ存続）。
 1900年（明治33年）6月11日：住吉駅を小樽駅（初代）に改称。北海道炭鉱鉄道と北海道官設鉄道の直通列車が手宮駅 - 旭川駅間で運行開始。
 1903年（明治36年）4月21日：白石駅を新設。
 1905年（明治38年）
 9月15日：北海道官設鉄道・北海道炭礦鉄道・北海道鉄道（初代）の間で旅客・小荷物・貨物の連絡運輸開始。
 10月8日：張碓駅を新設。
 1906年（明治39年）
 9月8日：北海道炭礦鉄道と北海道鉄道（初代）の直通列車が函館駅 - 札幌駅間で運行開始。
 10月1日：北海道炭礦鉄道の小樽駅（初代） - 空知太駅間が国有化。

 北海道官設鉄道上川線 
 1898年（明治31年）7月16日：北海道官設鉄道上川線の空知太駅 - 旭川駅間が開業。滝川・江部乙・妹背牛・深川・納内・旭川の各駅と、伊納信号停車場を新設。同時に北海道炭礦鉄道の砂川駅 - 空知太駅間が借上げ。
 1900年（明治33年）
 5月11日：伊納信号停車場を駅に変更。
 6月11日：北海道炭鉱鉄道と北海道官設鉄道の直通列車が手宮駅 - 旭川駅間で運行開始。
 1901年（明治34年）12月5日：神居古潭簡易乗降場を新設。
 1905年（明治38年）4月1日：北海道官設鉄道が鉄道作業局（国有鉄道）に編入。

 北海道鉄道 
 1902年（明治35年）12月10日：北海道鉄道（初代）の函館駅（初代）- 本郷駅間および然別駅 - 蘭島駅間が開業。同区間に函館（初代）・桔梗・七飯・本郷・然別・仁木・余市・蘭島の各駅を新設。
 1903年（明治36年）
 6月28日：北海道鉄道（初代）の本郷駅 - 宿野辺 - 森駅間、山道駅 - 然別駅間および蘭島駅 - 小樽中央駅（現在の小樽駅）間が延伸開業。同区間に大沼（初代）・宿野辺・森・山道・塩谷・小樽中央の各駅を新設。
 11月3日：北海道鉄道（初代）の森駅 - 熱郛駅間が延伸開業。同区間に石倉・野田追・山越内・八雲・黒岩・国縫・長万部・二股・黒松内・熱郛の各駅を新設。
 1904年（明治37年）
 7月1日：北海道鉄道（初代）の函館駅（2代） - 函館駅（初代）間が延伸開業。函館駅（2代）を新設。函館駅（初代）を亀田駅に改称。
 7月18日：北海道鉄道（初代）の小沢駅 - 山道駅間が延伸開業。小沢駅を新設。山道駅を廃止。
 10月15日：歌棄駅 - 小沢駅間が延伸開業し、北海道鉄道（初代）の函館駅 - 高島駅間が全通。同区間に赤井川・山崎・紋別・蕨岱・磯谷・蘭越・昆布・真狩・比羅夫・倶知安の各駅を新設。宿野辺駅を駒ヶ岳駅に、山越内駅を山越駅に、熱郛駅を歌棄駅に、蘭島駅を忍路駅に、小樽中央駅を高島駅にそれぞれ改称。
 1905年（明治38年）
 1月29日：銀山駅を新設。
 8月1日：北海道鉄道（初代）の高島駅 - 小樽駅（初代）間が延伸開業し、函館駅 - 旭川駅間全通。小樽駅（初代）にて北海道炭礦鉄道に接続。
 9月15日：北海道官設鉄道・北海道炭鉱鉄道・北海道鉄道（初代）の間で旅客・小荷物・貨物の連絡運輸開始。
 12月15日：歌棄駅を熱郛駅に、磯谷駅を目名駅に、真狩駅を狩太駅に、忍路駅を蘭島駅に、高島駅を小樽中央駅にそれぞれ改称。
 1906年（明治39年）9月8日：北海道炭鉱鉄道と北海道鉄道（初代）の直通列車が函館駅 - 札幌駅間で運行開始。
 1907年（明治40年）7月1日：北海道鉄道（初代）の函館駅 - 小樽駅（初代）間が国有化。

 渡島海岸鉄道 
 1927年（昭和2年）12月25日：渡島海岸鉄道として、東森仮停車場 - 砂原駅間が開業。東森仮停車場と尾白内・掛澗・砂原の各駅を設置。
 1928年（昭和3年）9月13日：渡島海岸鉄道の森駅 - 東森駅間が延伸開業。東森仮停車場を廃止。
 1934年（昭和9年）
 7月1日：東森駅を新設。
 12月25日：尾白内駅を移設。
 1936年（昭和11年）7月1日：新川・尾白内学校裏・押出・度杭崎の各停留所を新設。
 1938年（昭和13年）1月：東掛澗停留所を新設。
 1945年（昭和20年）1月25日：渡島海岸鉄道の森駅 - 砂原駅間が運輸通信省に買収され、国有化。函館本線支線の森駅 - 渡島砂原駅間として開業。新川・尾白内学校裏・押出・東掛澗・度杭崎の各停留所を廃止。

 国有鉄道（官設鉄道） 

 1905年（明治38年）
 4月1日：北海道官設鉄道の空知太駅 - 旭川駅間が鉄道作業局（国有鉄道）に編入。同時に北海道炭礦鉄道砂川駅 - 空知太駅間が借上。神居古潭簡易乗降場が駅に変更。
 9月15日：北海道官設鉄道・北海道炭礦鉄道・北海道鉄道（初代）の間で旅客・小荷物・貨物の連絡運輸開始。
 1906年（明治39年）10月1日：北海道炭礦鉄道の小樽駅（初代） - 空知太駅間が国有化。小樽駅（初代） - 旭川駅間が官設線になる。
 1907年（明治40年）
 7月1日：北海道鉄道（初代）の函館駅 - 小樽駅（初代）間が国有化。函館駅 - 旭川駅が官設線になる。
 11月25日：上幌向駅を新設。
 1908年（明治41年）
 5月1日：亀田駅を一般駅から貨物駅に変更。
 5月25日：大沼公園駅を新設。
 8月8日 - 17日：北海道競馬会主催による競馬開催のため、桑園駅 - 札幌駅間に北五条仮乗降場を一時的に設置。8月5・6・15・16日の4日間に限り開設の予定だったが、雨天のため8月8日から営業した。
 1909年（明治42年）
 8月25日：銭函駅 - 札幌駅間が複線化。
 8月26日：野幌駅 - 江別駅間が複線化。
 9月26日：亀田駅が休止。
 10月12日：国有鉄道線路名称制定により、函館駅 - 旭川駅間が函館本線、手宮駅 - 小樽駅（初代）間が手宮線、岩見沢駅 - 幌内駅間および幌内太駅 - 幾春別駅間が幌内線となる。
 12月6日：札幌駅 - 野幌駅間、江別駅 - 岩見沢駅間が複線化。
 1910年（明治43年）
 5月1日：小樽駅（初代） - 朝里駅間が複線化。函館駅 - 釧路駅間の直通列車運行開始。
 5月16日：苗穂駅を新設。
 11月21日：小樽築港駅を新設。
 1911年（明治44年）
 1月11日：近文信号所が駅に変更。
 6月20日：朝里駅 - 銭函駅間が複線化。
 7月1日：函館駅 - 釧路駅間の直通列車（函館駅 - 旭川駅間急行）に一等寝台車連結。
 8月5日：落部駅を新設。
 9月1日：亀田駅を廃止。五稜郭駅を新設。
 1913年（大正2年）
 7月19日：琴似駅 - 札幌駅間に競馬場前仮乗降場が開業。
 8月1日：姫川信号所が開設。
 9月21日：上目名駅を新設。
 1914年（大正3年）10月1日：紋別駅を中ノ沢駅に改称。
 1916年（大正5年）
 4月10日：函館駅 - 釧路駅間の直通列車に食堂車連結。
 7月15日：茶志内駅を新設。
 1919年（大正8年）：東岡信号場を新設。
 1920年（大正9年）
 6月15日：大沼駅（初代）を軍川駅に、大沼公園駅を大沼駅（2代）にそれぞれ改称。
 7月15日：中央小樽駅を小樽駅（2代）に、小樽駅（初代）を南小樽駅にそれぞれ改称。
 1922年（大正11年）4月1日：姫川信号所が姫川信号場に改称。
 1923年（大正12年）12月17日：岩見沢駅 - 東岡信号場間が複線化。東岡信号場を廃止。
 1924年（大正13年）
 5月31日：東岡信号場 - 美唄駅間が複線化。
 6月1日：桑園駅を新設。競馬場前仮乗降場を廃止。
 1925年（大正14年）10月20日：美唄駅 - 奈井江駅間が複線化。
 1926年（大正15年）
 8月1日：砂川駅 - 上砂川駅間の支線（上砂川支線）が開業。上砂川駅を新設。
 8月21日：北海道鉄道（2代）札幌線（現在の千歳線）の沼ノ端駅 - 苗穂駅間が開業。同区間に月寒・東札幌の各駅を新設。
 12月1日：奈井江駅 - 砂川駅間が複線化。
 1930年（昭和5年）
 3月20日：森駅 - 石倉駅間に石谷信号場が開設。
 7月1日：小樽駅 - 旭川駅間に準急列車新設。
 1931年（昭和6年）12月1日：美唄駅 - 南美唄駅間の貨物支線（南美唄支線）が開業。同区間に南美唄駅を新設。
 1932年（昭和7年）
 7月1日：小樽築港駅 - 浜小樽駅間の貨物支線が開業。（貨）浜小樽駅を新設。
 9月10日：現岩見沢市の幾春別川の堤防が決壊。岩見沢駅 - 峰延駅間が浸水のため不通。また、江別幌向駅 - 上幌向駅間も不通。
 1936年（昭和11年）9月15日：仁山信号場が開設。
 1940年（昭和15年）9月15日：砂川駅 - 滝川駅間に空知太信号場が開設。
 1941年（昭和16年）12月15日：函館駅 - 五稜郭駅間が複線化。
 1942年（昭和17年）
 2月10日：豊沼信号場を開設。
 4月1日：本郷駅を渡島大野駅に改称。
 1943年（昭和18年）
 2月26日：東山信号場が開設。
 9月30日：仁山信号場 - 軍川駅間に小沼信号場が開設。
 1944年（昭和19年）
 1月25日：美唄駅 - 南美唄駅間の支線（南美唄支線）の旅客営業が開始。
 2月1日：姫川信号場 - 森駅間に森川信号場が開設。
 7月1日：北豊津信号場が開設。
 9月1日：鷲ノ巣信号場が開設。
 9月10日：本石倉信号場が開設。
 9月30日：五稜郭駅 - 桔梗駅間が複線化。桂川信号場が開設。
 1945年（昭和20年）
 1月25日：渡島海岸鉄道の森駅 - 砂原駅間が運輸逓信省に買収され、国有化。函館本線支線の森駅 - 渡島砂原駅間として開業。同区間に渡島砂原・掛澗・尾白内・東森の各駅を新設。砂原駅を渡島砂原駅に改称。新川・尾白内学校裏・押出・東掛澗・度杭崎の各停留所を廃止。
 6月1日：軍川駅（現在の大沼駅）- 渡島砂原駅間の支線が延伸開業し、軍川駅 - 森駅間の支線が全通。同区間に池田園・銚子口・鹿部の各駅と渡島沼尻信号場（仮乗降場）を新設。銚子口駅 - 鹿部駅間に新本別信号場が開設。
 7月20日：石倉駅 - 野田追駅間が複線化。
 12月1日：森川信号場が廃止。
 1946年（昭和21年）
 4月1日：石谷信号場を駅に変更。
 4月22日：上野駅 - 札幌駅間直通の連合軍専用列車運行開始。
 1947年（昭和22年）2月20日：豊沼信号場を駅に変更。
 1948年（昭和23年）
 7月1日：小沼信号場が廃止。
 11月5日：光珠内仮乗降場を新設。
 12月1日：上砂川支線に鶉仮乗降場を新設。
 1949年（昭和24年）
 2月20日：鹿部駅を鷹待駅に改称。
 6月1日：日本国有鉄道法施行に伴い、日本国有鉄道（国鉄）に移管。
 8月1日：東山信号場が仮乗降場に、新本別信号場が駅に変更（廃止時期不明）。
 1950年（昭和25年）
 1月25日：近文駅 - 旭川大町駅間の貨物支線が開業。同区間に（貨）旭川大町駅を新設。大中山駅を新設。
 2月1日：砂川駅 - 空知太信号場間が複線化。
 1952年（昭和27年）
 4月10日：光珠内仮乗降場を駅に変更。
 11月15日：軽川駅を手稲駅に改称。
 1953年（昭和28年）10月1日：上砂川支線の鶉仮乗降場が駅に変更。
 1956年（昭和31年）
 10月20日：空知太信号場 - 滝川駅間が複線化。空知太信号場が仮乗降場に変更（廃止時期不明）。
 11月1日：豊幌駅を新設。
 12月20日：鷹待駅を鹿部駅に改称。
 1957年（昭和32年）
 8月12日：定山渓鉄道が気動車による札幌駅乗り入れを開始。
 10月1日：定山渓鉄道が旅客電車による苗穂駅乗り入れを廃止。
 1958年（昭和33年）
 10月1日：小樽駅 - 滝川駅間で気動車の運行を開始。
 12月10日：落部駅 - 野田追駅間が単線化。
 1959年（昭和34年）
 5月1日：上砂川支線に下鶉仮乗降場を新設。
 9月22日：札幌駅 - 旭川駅・上芦別駅間に準急「かむい」新設。
 10月1日：野田追駅を野田生駅に改称。
 12月15日：桑園駅 - 札幌市場駅間に貨物支線が開業。（貨）札幌市場駅を新設。
 12月18日：上砂川支線の下鶉仮乗降場を駅に変更。同支線に東鶉駅を新設。
 1961年（昭和36年）10月1日：滝川駅 - 江部乙駅間に深沢信号場、神居古潭駅 - 伊納駅間に春志内信号場が開設。函館駅 - 旭川駅間（室蘭本線経由）に特急「おおぞら」新設。上り列車は従来は砂原線経由だったが、「おおぞら」の運転を機に4200万円を投じて上り列車の信号機を新設し、駒ヶ岳駅経由に変更して所要時間短縮を図った。また、軌道強化が実施され、函館駅 - 長万部駅間の最高速度を従来の95 km/hから100 km/hに引き上げられる。
 1962年（昭和37年）
 7月25日：熊の湯信号場 - 軍川駅間が複線化。仁山駅 - 軍川駅間に熊の湯信号場が開設。
 9月4日：桔梗駅 - 七飯駅間が複線化。
 1964年（昭和39年）
 5月1日：大沼駅（2代）を大沼公園駅に改称。
 6月1日：軍川駅を大沼駅（3代）に改称。
 9月27日：小樽駅 - 南小樽駅間が高架化。
 10月1日：深川駅 - 納内駅間が複線化。函館駅 - 釧路駅・網走駅間（室蘭本線経由）に特急「おおとり」新設。
 1965年（昭和40年）
 8月12日：小樽駅 - 南小樽駅間が複線化。
 9月25日：札幌駅 - 苗穂駅間が三線化。
 9月27日：中ノ沢駅 - 長万部駅間が複線化。
 9月29日：深沢信号場 - 江部乙駅間、妹背牛駅 - 深川駅間が複線化。
 10月1日：函館駅 - 旭川駅間（室蘭本線経由）に特急「北斗」新設。
 11月：小樽駅 - 旭川駅間の電化着工を決定。
 12月13日：小樽駅 - 旭川駅間電化工事起工式開催。
 1966年（昭和41年）
 9月24日：山崎駅 - 黒岩駅間、江部乙駅 - 妹背牛駅間が複線化。
 9月27日：滝川駅 - 深沢信号場間が複線化され、深沢信号場が廃止。
 9月28日：国縫駅 - 函館起点105.911 km地点（国縫駅 - 中ノ沢駅間）が複線化。
 9月30日：七飯駅 - 大沼駅間の別線（藤城支線）が開通。熊の湯信号場が廃止。
 11月10日：銭函駅 - 手稲駅間の電化試験線区が完成。
 11月15日：銭函駅 - 手稲駅間での電化試運転開始。
 12月15日：大麻駅を新設。
 12月25日：函館起点105.911 km地点 - 中ノ沢駅間が複線化。
 1967年（昭和42年）3月1日：函館駅 - 旭川駅間に特急「北海」新設。
 1968年（昭和43年）
 4月1日：狩太駅がニセコ駅に改称。
 7月1日：定山渓鉄道が札幌駅乗り入れを廃止。滝川駅 - 旭川駅間電化工事着工。
 8月28日：小樽駅 - 滝川駅間が電化（交流20,000 V 50 Hz）。
 9月21日：落部駅 - 野田生駅間が再び複線化。
 9月28日：近文駅 - 旭川駅間が複線化。
 10月1日：白石駅 - 東札幌駅間の貨物支線が開業。新札幌駅（初代・貨物駅）を新設。急行「かむい」1往復を道内国鉄線初の電車急行化。
 1969年（昭和44年）
 8月29日：野田生駅 - 山越駅間が複線化。
 9月26日：山越駅 - 八雲駅間が複線化。
 9月30日：納内駅 - 近文駅間が複線化に伴いルート変更。神居古潭駅・春志内信号場が廃止。滝川駅 - 旭川駅間でC57 201牽引による「SLさよなら列車」運転。
 10月1日：滝川駅 - 旭川駅間が電化（交流20,000 V 50 Hz）。
 11月26日：桔梗駅 - 森駅間をCTC化（同年8月1日からテスト運用）。
 1970年（昭和45年）9月25日：北豊津信号場 - 国縫駅間が複線化。
 1971年（昭和46年）
 7月1日：札幌駅 - 旭川駅間にノンストップ急行「さちかぜ」新設。
 8月3日：美唄駅 - 南美唄駅間の支線（南美唄支線）の旅客営業が廃止。
 9月21日：桂川駅 - 石谷駅間が複線化。
 1972年（昭和47年）10月2日：札幌駅 - 網走駅間に特急「オホーツク」新設。
 1973年（昭和48年）
 7月16日：新札幌駅（初代・貨物駅）を札幌貨物ターミナル駅に改称。
 9月9日：美唄駅 - 南美唄駅間の貨物支線（南美唄支線）が廃止。南美唄駅を廃止。
 9月10日：千歳線の北広島駅 - 苗穂駅間の線路付替に伴い、同線との接続駅を苗穂駅から白石駅に変更。同時に、旧千歳線の東札幌駅 - 月寒駅間が函館本線の貨物支線となり、同区間の月寒・東札幌の各駅が函館本線に編入される。
 12月11日：本石倉駅 - 石倉駅間が複線化。本石倉信号場を仮乗降場に変更。
 1974年（昭和49年）10月31日：石谷駅 - 本石倉駅間が複線化。
 1975年（昭和50年）7月18日：札幌駅 - 旭川駅間にエル特急「いしかり」新設。
 1976年（昭和51年）
 10月1日：東札幌駅 - 月寒駅間の貨物支線が廃止。月寒駅を廃止。
 10月2日：駒ヶ岳駅駅 - 姫川信号場間で下り貨物列車が脱線。貨車41両中40両とディーゼル機関車が転覆する国鉄史上最大の脱線事故となった。人海戦術による復旧が行われて同区間は10月3日始発列車から運転開始。
 1978年（昭和53年）10月2日：桑園駅 - 札幌市場駅間、近文駅 - 旭川大町駅間の両貨物支線が廃止。札幌市場・旭川大町の各駅を廃止。
 1979年（昭和54年）9月27日：森駅 - 桂川駅間が複線化。
 1980年（昭和55年）10月1日：エル特急「いしかり」を「ライラック」と改称。
 1984年（昭和59年）
 2月1日：小樽築港駅 - 浜小樽駅間の貨物支線が廃止。浜小樽駅を廃止。
 3月31日：上目名駅を廃止。
 6月10日 - 8月24日：'84小樽博覧会の開催に合わせて、小樽築港駅 - 浜小樽駅間の貨物支線に会場前駅（臨時駅）を設置。
 9月20日：森林公園駅を新設。
 11月19日：八雲駅 - 鷲ノ巣駅間が複線化。
 1985年（昭和60年）10月1日：星置駅を新設。
 1986年（昭和61年）
 3月3日：札幌駅 - 白石駅間の最高速度を100 km/hから120 km/hに引き上げられる。これに合わせて隣接する千歳線の千歳空港駅 - 白石駅間も同様に最高速度が引き上げられる。同時に千歳空港駅 - 札幌駅 - 旭川駅間にエル特急「ホワイトアロー」新設。
 11月1日：白石駅 - 東札幌駅間の支線（貨物線）が廃止。東札幌駅を廃止。発寒駅を新設。稲穂・稲積公園・発寒中央・高砂の各臨時乗降場を新設。また、野田生駅 - 長万部駅間の最高速度を100 km/hから110 km/hに、白石駅 - 旭川駅の最高速度を従来の100 km/hから120 km/hにそれぞれ引き上げられる。曲線や分岐器の通過速度も向上した。

 民営化以後 
 1987年（昭和62年）4月1日：国鉄分割民営化に伴い、北海道旅客鉄道（JR北海道）が第一種鉄道事業者として全線を承継。同時に、日本貨物鉄道（JR貨物）が函館駅 - 大沼公園駅 - 長万部駅間、手稲駅 - 旭川駅間、大沼駅 - 渡島砂原駅 - 森駅間（砂原支線）および砂川駅 - 上砂川駅間（上砂川支線）の第二種鉄道事業者となる。長万部駅 - 手稲駅間の貨物営業が廃止。東山・本石倉の各仮乗降場、稲穂・稲積公園・発寒中央・高砂の各臨時乗降場、仁山・姫川・桂川・鷲ノ巣・北豊津・渡島沼尻の各信号場がそれぞれ駅に変更。
 時期不明：1987年4月時点で、深川駅 - 旭川駅間運行の普通列車および留萠駅 - 旭川駅運行の普通列車に「ユーカラ」、滝川駅 - 旭川駅間運行の普通列車に「いしかり」の愛称が付与されている。なお『JTB時刻表』1989年3月号では列車名は設定されていない。
 1988年（昭和63年）
 3月13日：海峡線開業に伴い、函館駅 - 五稜郭駅間が電化（交流20,000 V 50 Hz）。旭川駅の読み方を「あさひがわ」から「あさひかわ」に変更。
 11月3日：琴似駅 - 札幌駅間の高架化により、札幌駅 - 苗穂駅間が複々線化。琴似駅 - 苗穂駅間の高架化完成。また、札幌駅 - 旭川駅間の軌道改良も同時に実施され、優等列車の速度向上に寄与した。
 1989年（平成元年）3月11日：野田生駅 - 長万部駅間の最高速度を110 km/hから120 km/hに引き上げられる。また函館駅 - 野田生駅間の最高速度を従来の100 km/hから110 km/hに引き上げられる。
 1990年（平成2年）
 3月10日：砂川駅 - 上砂川駅間（上砂川支線）でワンマン運転を開始。
 9月1日：張碓駅が臨時駅に変更。札幌駅 - 旭川駅間にエル特急「スーパーホワイトアロー」新設。同時に、札幌駅 - 旭川駅間の最高速度が130 km/hに向上。
 1991年（平成3年）
 3月16日：函館駅 - 野田生駅間の最高速度を110 km/hから120 km/hに引き上げ、これにより優等列車の所要時間が3分程度短縮された。
 12月：小樽駅 - 旭川駅間でATS-SN使用開始。
 1993年（平成5年）11月：函館駅 - 長万部駅間でATS-SN使用開始。
 1994年（平成6年）
 3月1日：特急「スーパー北斗」の運行開始に伴い、函館駅 - 長万部駅間の最高速度が130 km/hに向上。
 5月16日：砂川駅 - 上砂川駅間（上砂川支線）の運輸営業を廃止 (-7.3 km)。北海道中央バスに転換。下鶉・鶉・東鶉・上砂川の各駅を廃止。
 11月1日：桑園駅 - 札幌駅間が三線化。
 1995年（平成7年）3月16日：ほしみ駅を新設。函館駅 - 長万部駅 - 小樽駅間・滝川駅 - 旭川駅間でワンマン運転を開始（快速「アイリス」を含む気動車による普通列車のみ）。
 1998年（平成10年）
 2月25日：小樽駅 - 旭川駅間に自動進路制御装置 (PRC) 導入。
 7月1日：張碓駅が通年休止。
 2000年（平成12年）
3月31日 - 2001年 （平成13年）6月30日：有珠山の噴火に伴い室蘭本線が不通となり、上野・大阪発寝台特急を含む長距離旅客・貨物列車の迂回運転が実施される（“山線迂回”）。
12月31日 - 2001年（平成13年）1月1日：旭川運転所に隣接する形で、期間限定で北彩都あさひかわ駅（臨時駅）を設置。
 2002年（平成14年）
 4月1日：JR貨物が函館駅 - 五稜郭駅間 (3.4 km) の第二種鉄道事業を廃止。
 4月27日：流山温泉駅が開業。
 2006年（平成18年）
 3月18日：張碓駅を廃止。
 4月1日：JR貨物が手稲駅 - 苗穂駅間 (12.8 km) の第二種鉄道事業を廃止。
 2007年（平成19年）10月1日：全線で駅ナンバリング実施。
 2008年（平成20年）
 10月25日：小樽駅 - 岩見沢駅間にICカード「Kitaca」を導入。
 11月1日：長時間運転を見合わせる事象が発生した場合、JRの乗車券所持者に札幌市営地下鉄の乗車券を配布する代替輸送を開始。函館本線では以下の駅からの乗車券を配布。
 手稲駅・発寒駅：宮の沢駅（東西線）
 発寒中央駅：発寒南駅（東西線）
 琴似駅：琴似駅（東西線）
 札幌駅：さっぽろ駅（南北線）
 2010年（平成22年）10月10日：旭川駅を高架化。
 2011年（平成23年）10月23日：野幌駅を高架化。
 2013年（平成25年）
 3月21日：五稜郭駅 - 渡島大野駅間電化工事着工（4月20日起工式）。
 8月17日：山越駅 - 八雲駅間の下奥津内橋梁付近で、集中豪雨に伴う河川増水により、流木による線路支障および道床流失を原因とする脱線事故が発生。
 9月19日：大沼駅構内の副本線で貨物列車が脱線する事故（函館本線大沼駅貨物列車脱線事故）が発生。これに伴う調査等において、軌道変位検査データの改ざんが発覚。
 11月1日：特急列車の減速・減便に伴い、函館駅 - 長万部駅間の最高速度が120 km/hとなる。
 11月12日：9月の前述の脱線事故および軌道変異検査データ改ざん問題を受け、2014年8月18日まで副本線での減速運転を実施。
 2014年（平成26年）
 3月15日：特急・快速列車の減速・減便に伴い、札幌駅 - 旭川駅間の最高速度が120 km/hとなる。
 5月7日 - 11月30日：大沼駅 - 渡島砂原駅 - 森駅間の枕木を木製からコンクリート製（PC枕木）に入れ替える軌道強化工事に伴い、下り普通列車1本を駒ヶ岳経由に変更して渡島砂原方面へはバス代行輸送。
 2015年（平成27年）12月27日：伊納駅 - 近文駅間の嵐山トンネル内で火災発生。2日後の29日午前中まで深川駅 - 旭川駅間が不通となり、バス代行輸送が行われた。
 2016年（平成28年）3月26日：北海道新幹線の新青森駅 - 新函館北斗駅間開業に伴い、渡島大野駅を新函館北斗駅に改称。五稜郭駅 - 新函館北斗駅間が電化（交流20,000 V 50 Hz）され、同区間に新幹線接続列車「はこだてライナー」を新設。鷲ノ巣駅が信号場に変更され、鷲ノ巣信号場となる。
 2017年（平成29年）
 3月4日：東山駅、桂川駅、蕨岱駅が廃止。姫川駅、北豊津駅が信号場に変更され、姫川信号場、北豊津信号場となる。
 12月13日：熱郛駅 - 目名駅間で路盤流出が発生。復旧まで、長万部駅 - 蘭越駅間でバスやタクシーによる代行輸送が行われた。
 2018年（平成30年）11月17日：苗穂駅を札幌方に300 m移転し橋上駅化。
 2021年（令和3年）
 3月13日：伊納駅が廃止。
 3月31日：小沢駅 - 銀山駅間で斜面崩壊が発生。倶知安駅 - 然別駅間で同日の普通列車など上下計16本が運休。翌4月1日も同区間で終日運休。
 4月2日：斜面崩壊箇所の復旧工事に着手。復旧には少なくとも2週間が見込まれることが発表。同日から4月7日まで、倶知安駅 - 然別駅間の普通・快速列車が全区間および部分運休し、倶知安駅 - 然別駅・余市駅間でバス代行を実施。
 4月6日：JR北海道が、4月8日以降も倶知安駅 - 然別駅・余市駅間でのバス代行の継続、倶知安駅 - 長万部駅間の一部便のタクシー代行を実施することを発表。
 4月14日：JR北海道が、斜面崩壊箇所の復旧完了時期が、作業の遅れにより、4月末になることを発表。
 4月19日：JR北海道が、倶知安駅 - 然別駅間を4月21日に運転再開することを発表。
 4月21日：同日昼の普通列車より、倶知安駅 - 然別駅間で運転再開。
 7月1日：長万部町が「並行在来線の旅客は廃止する方向で検討すべき」と広報誌にて表明。「町民議論をしたい」と意見を募集する。
 12月24日：倶知安町が長万部駅 - 小樽駅間の全線バス転換を支持する意向を示す。
 12月27日：同日開催された北海道と沿線自治体（小樽市・余市町・仁木町・共和町・倶知安町・ニセコ町・蘭越町・黒松内町・長万部町）との長万部駅 - 小樽駅間の存廃を巡る協議会会合で、仁木町・共和町・倶知安町・長万部町が「同区間の廃止・バス転換」、余市町が「余市駅 - 小樽駅間の存続」、小樽市・ニセコ町・蘭越町・黒松内町が「判断を保留」をそれぞれ主張。
 2022年（令和4年）
 1月25日：黒松内町が長万部駅 - 小樽駅間の全線バス転換を支持する意向を示す。
 1月28日：ニセコ町が長万部駅 - 小樽駅間の全線バス転換を支持する意向を示す。
 2月2日：蘭越町が長万部駅 - 小樽駅間の全線バス転換を支持する意向を示す。
 2月3日：沿線自治体（仁木町・共和町・倶知安町・ニセコ町・蘭越町・黒松内町・長万部町）が長万部駅 - 余市駅間の廃止・バス転換に合意。
 3月12日：池田園駅、流山温泉駅、本石倉駅が廃止。銚子口駅、石谷駅が信号場に変更され、銚子口信号場、石谷信号場となる。
 3月26日：沿線自治体（小樽市・余市町）が余市駅 - 小樽駅間の廃止・バス転換に合意。
 3月27日：沿線自治体（小樽市・余市町・仁木町・共和町・倶知安町・ニセコ町・蘭越町・黒松内町・長万部町）と北海道の協議において長万部駅 - 小樽駅間の廃線・バス転換が決定。
 2024年（令和6年）
 3月16日：函館駅 - 新函館北斗駅間、岩見沢駅 - 旭川駅間でICカード「Kitaca」の利用が可能となる。岩見沢駅 - 滝川駅間でワンマン運転を開始 。中ノ沢駅が廃止。
 11月16日：森駅 - 石倉駅間で貨物列車の脱線・分離事故が発生。森駅 - 長万部間で運転見合わせ。19日からは運転を再開する予定。

 今後の予定 

2010年（平成22年）3月、JR北海道は函館本線の小樽以南全区間を経営分離する方針を打ち出したため、2030年度に予定される北海道新幹線の札幌延伸時には、本路線の砂原支線・藤城支線を含む函館駅 - 長万部駅間が経営分離される予定である。また、長万部駅 - 余市駅間は2022年2月3日に沿線自治体が鉄道存続を断念し、廃止を受け入れバスに転換することで合意した。新幹線開業に伴う並行在来線の廃止は、第三セクター鉄道への転換を除けば1997年10月1日の長野新幹線（北陸新幹線）高崎駅 - 長野駅間先行開業に伴う信越本線横川駅 - 軽井沢駅間の廃止以来2例目となる。余市駅 - 小樽駅間に関しては、小樽市への通勤・通学が多い余市町が第三セクターでの鉄道存続を要望しているため、バス転換へ前向きな小樽市との意見集約が出来ず、結論が先送りされることとなった。なお、小樽市は、2022年1月31日の迫俊哉市長の定例記者会見の席上で、余市駅 - 小樽駅間の存廃について、「バス転換を視野に入れた動きを進めたい」として、同区間のバス転換の方向性について言及している。同年3月26日に行われた道と沿線自治体（小樽市・余市町）の3者協議において余市駅 - 小樽駅間の鉄道存続を断念し、廃止を受け入れバスに転換することで合意した。同年3月27日に行われた沿線自治体（小樽市・余市町・仁木町・共和町・倶知安町・ニセコ町・蘭越町・黒松内町・長万部町）と道の協議において長万部駅 - 小樽駅間の廃線・バス転換が決定した。

2023年10月、北海道などから代替バスの運行を打診されている北海道中央バスなどのバス事業者3社が2024年問題などに伴うバス運転手の不足により、北海道から示されているダイヤ案での本数運行は困難であると回答し、バス転換協議が難航していることが報じられた。北海道などは他のバス事業者にも協力を求めるほか、利用者が少ない一部区間についてはタクシーなど、バス以外の交通機関への転換も検討するとしている。このような状況に対し、余市町の斉藤啓輔町長は2024年6月の余市町議会において「（余市―小樽間の）バス転換合意は迅速かつ大量輸送の確保が前提。それが崩れる場合は合意を撤回する」と述べた。

また、函館駅 - 新函館北斗駅間については、並行在来線であるかどうかについては異論があり、当該区間は並行在来線ではないとの立場に立つ函館市はJRによる運行継続を求めていた。しかし、2011年（平成23年）4月に初当選した工藤壽樹函館市長は、同年11月24日、バス転換しないことなどを条件に経営分離容認を表明。函館商工会議所を始めとする諸団体が依然として反対していたため正式決定が遅れたものの、12月21日には経営分離に同意した。

函館駅 - 長万部駅間については、沿線自治体の多くが旅客路線としては大部分を廃線並びにバス転換したい意向を示しているが、同区間は北海道と本州間における鉄道物流の大動脈となっている貨物列車も運行されており、仮に同区間を廃線にした場合、物流網が寸断され、道内の地域経済（特に農水産業）に大打撃となる恐れがあることから、日本貨物鉄道（JR貨物）北海道支社長の小暮一寿は2022年5月に同区間の存廃について、「自社のみでの貨物路線の保有は困難」として、「第三セクターなどによる鉄道維持が望ましい」との見解を出している。この問題を受けて、国土交通大臣の斉藤鉄夫は、函館駅 - 長万部駅間を貨物路線として維持するための方策を、北海道庁、JR北海道、JR貨物との4者で協議を行うことを2022年9月20日に表明した。その後、2023年（令和5年）7月26日に前述の4者が札幌市内で開いた協議会において、該当区間における鉄道貨物機能を維持する方針を確認した。これにより、新幹線延伸に伴う並行在来線では初めて貨物専用路線として残る可能性が高くなった。

なお、2022年8月31日に開催された北海道と沿線自治体による協議会では、函館駅 - 長万部駅間全区間を第三セクターで維持する場合は経営分離後30年間で累計816億円の赤字が見込まれるとの収支予測を公表した。これを受け、北海道は沿線自治体に対し、赤字圧縮を目的に藤城支線の旅客運行を取りやめる案を提案している。

2016年11月16日、JR北海道が公表した「維持困難路線」に関するプレスリリースのなかで、本区間は「経営分離されるまでの間、施設のスリム化などに取り組み、効率的な運営を行ってまいります」とされた。

小樽駅 - 札幌駅間は札幌都市圏輸送の使命を担っているため普通列車（快速含む）の本数・利用客共に多く、また、新千歳空港駅方面や岩見沢駅方面と一体的な運用を行っているなどの理由から、新幹線開業後もJR北海道が経営を継続する予定である。

2024年4月1日に公表された「JR北海道グループ中期経営計画2026」では、北海道新幹線札幌延伸後に在来線の改良による高速化（軌道強化・線形改良・最高速度の向上・高架化による踏切解消など）を行い、札幌駅 - 旭川駅間（136.8km）の所要時間を最速1時間25分（2024年時点）から最速60分への短縮を目指す構想が示されている。

 沿線風景 

起点の函館駅から出発すると五稜郭駅を過ぎるまで、函館市内の住宅地が連なる。七飯駅 - 大沼駅間は本線と支線の二手に別れ、大沼駅付近では駒ヶ岳が見える。大沼駅 - 森駅間は駒ヶ岳を挟んで山間部を通る本線と海沿いを通る支線に線路が分かれ、まったく異なる車窓風景が見られる。なお、大沼駅付近では大沼国定公園指定の沼が何度か見えるが、大沼が見えるのは大沼公園駅を過ぎたあとの右手側と旧流山温泉駅付近の左手側だけであり、大沼駅付近でそれ以外の場所・方向に見えるのは大沼ではなく、小沼である。森駅 - 長万部駅間は噴火湾（内浦湾）沿いに海岸線を進む。

長万部駅からは山へと分け入り、急勾配の峠に挑む。ニセコアンヌプリや羊蹄山の麓を過ぎると余市からは沿線に果樹園が続き、蘭島駅付近から再び海岸が近づいて小樽駅へ至る。小樽市内の小樽築港駅 - 銭函駅間では、間近に日本海を望むことができる。

石狩湾を離れると、いよいよ札幌市へ入る。札幌駅を中心とした北海道最大の都市圏を抱え、沿線は住宅地のほか商業地域やマンションが目立つようになる。札幌駅から白石駅までは千歳線専用の線路（外側2線が函館本線・内側2線が千歳線）と並列し、両線の列車の同時発車も見られる。江別駅を過ぎると徐々に田園風景へと移り、岩見沢駅から滝川駅にかけて平らな石狩平野の穀倉地帯を北上する。並走する国道12号に日本一の直線区間があるように、函館本線もこの区間は長い直線が続き、特急「カムイ」「ライラック」をはじめとする優等列車や721系・731系・733系・735系電車による普通列車もその性能を遺憾なく発揮する。沿線は時折市街地を挟みながら田園風景が続き、車窓の変化は少ない。

並行する石狩川を妹背牛駅の手前で初めて渡り、納内駅 - 近文駅間は景勝地である神居古潭を長い神居トンネルで抜ける。1969年に切り替えられた新線は複数の山を神居トンネルをはじめとする合計5本のトンネルで貫き、複線・電化の際に曲線緩和と距離短縮を目的として建設されたが、引き換えに車窓風景を失った。石狩川の屈曲に合わせて河岸を通っていた旧線は「旭川サイクリングロード」として整備されており、途中の神居古潭駅跡には旭川市の有形文化財に指定され再整備された駅舎やホームが残されているほか、3両の蒸気機関車も静態保存されている。

近文駅を過ぎて再び石狩川を渡ると、終点の旭川駅に到達する。かつては構内南側にヤードや機関庫などが広がっていたが「北彩都あさひかわ」計画に伴いすべて撤去され、跡地に高架化された駅舎を新築し、2010年（平成22年）10月10日に一次開業した。

 運行形態 

 広域輸送 

 函館駅 - 長万部駅間 
室蘭本線・千歳線を経由して函館市 - 札幌市間を結ぶ幹線の一部で、特急「北斗」がほぼ1 - 2時間間隔で運転される「特急街道」となっているが、新函館北斗駅 - 長万部駅間は非電化で、一部区間では単線のままである。

なお優等列車の大沼駅 - 森駅間については、定期特急列車はすべて距離の短い駒ヶ岳回りの本線（大沼駅 - 大沼公園駅 - 駒ヶ岳駅 - 森駅間）経由で運転される。かつての特急・急行列車は本線の急勾配を避けるため、上りが砂原支線（大沼駅 - 渡島砂原駅 - 森駅間）・下りが本線（こちらが勾配を下る形となる）と分けて運転されていた。しかし、時代とともにエンジンをはじめとする車両性能が向上したことや、観光地である大沼公園があることから、特急列車のルートは次第に上下問わず本線経由に移行していった。なお、貨物列車は現在でも大沼駅 - 森駅間で上りが砂原支線・下りが本線と上下別の運転を行っている。七飯駅 - 大沼駅間は、2016年（平成28年）3月25日まで下り特急列車は藤城支線を経由していたが、同年3月26日以降は新函館北斗駅に停車するため、特急列車は上下とも本線経由で運転されている（下り貨物列車は現在も藤城支線を経由している）。

 長万部駅 - 札幌駅間 
1986年11月1日のダイヤ改正で特急「北海」・急行「ニセコ」が廃止されて以降、この区間では定期優等列車が設定されていない。ただし、ニセコ駅 - 札幌駅間などに臨時特急が運行されることがある。

 札幌駅 - 旭川駅間 
年間約450万人の都市間輸送量があるこの2都市間や、その中間都市を結ぶ特急「カムイ」「ライラック」が30分から1時間間隔で運転されている。また、旭川以東に直通し石北本線を経て北見・網走方面へ向かう特急「オホーツク」、宗谷本線を経て名寄・稚内方面へ向かう特急「宗谷」も運行されている。なお、旭川駅で函館本線の特急と石北本線または宗谷本線の特急を改札を出ないで乗り継ぐ場合、特急料金を通算する特例がある。

このほか札幌駅 - 白石駅間には千歳線から優等列車が乗り入れる。室蘭本線を経由し上記函館方面から来る列車のほか、途中の東室蘭駅からの特急「すずらん」、石勝線経由で帯広・釧路方面を結ぶ特急「とかち」「おおぞら」が走る。これら千歳線からの列車は併設された千歳線列車用の複線を走行する。

 地域輸送 

 函館駅 - 長万部駅間 
函館駅を中心に普通列車が運転されている。運行区間は函館駅 - 長万部駅間の直通列車のほか、区間列車が函館駅 → 七飯駅間、函館駅 - 新函館北斗駅間（「はこだてライナー」）、函館駅 - 大沼公園駅間、函館駅 - 森駅間、森駅 - 長万部駅間などに設定され、函館駅に近いほど列車の本数が多くなっている。また、函館駅 - 五稜郭駅間には毎時1本程度道南いさりび鉄道線の普通列車も乗り入れる。函館 - 新函館北斗間は毎時2本程度が確保される一方、森駅 - 長万部駅間は普通列車に限れば1日6往復のみの運転である。

2016年3月25日までは快速列車として長万部発函館行きで「アイリス」が上りのみ設定されていた。

「はこだてライナー」を除く全普通列車がワンマン運転となっている。

+日中の1時間あたりの運行本数種別＼駅名函館五稜郭…新函館北斗森・長万部方面特急「北斗」1本はこだてライナー（普通・快速）1本普通1本→道南いさりび鉄道線一部時間帯のみ

砂原支線では、線路の路盤が脆弱であるため、時期は不詳だが渡島沼尻駅 - 渡島砂原駅間で徐行運転が行われていた。2018年4月11日にJR北海道が実施した軌道検測の結果を踏まえて、同月4月24日以降は徐行運転区間を銚子口駅 - 掛澗駅間へと拡大された。2018年12月1日以降は、この徐行運転による遅れを加味したダイヤ設定となっている。

七飯駅 - 大沼駅間は本線（新函館北斗駅・仁山駅経由）と新線（下り専用：藤城支線）に分かれるが普通列車は基本的に本線を走る。ただ一部の下り普通列車で藤城支線を通るものもあり、藤城支線を通る列車は新函館北斗駅と仁山駅は経由しない。2016年3月26日の北海道新幹線開業によるダイヤ改正で特急列車は本線経由に統一されたが、藤城支線を通る普通列車も引き続き運転される。なお、1996年（平成8年）12月4日に貨物列車の速度超過による脱線事故のため線路・路盤が変形し、仁山駅経由の本線が不通となった際、復旧まで藤城支線を上下単線として使用していたことがあった。

大沼駅 - 森駅間は本線と砂原支線に分かれている。

+ 七飯駅 - 大沼駅 - 森駅間の運行経路 路線本線新函館北斗・仁山経由大沼公園・駒ヶ岳経由支線通称：藤城支線途中駅なし、下り専用通称：砂原支線鹿部・渡島砂原経由 七飯…大沼…森運行経路下り特急本線経由本線経由貨物藤城支線経由上り特急本線経由本線経由貨物砂原支線経由 

 長万部駅 - 小樽駅間 
この区間では小樽駅を中心に列車が設定されており、全定期列車が各駅停車で運転され、ローカル輸送に徹している。朝に蘭越駅発札幌駅行き、夕方に札幌駅発倶知安駅行きでそれぞれ1日1本運転される快速列車「ニセコライナー」（旧称「マリンライナー」）もこの区間内では各駅停車となる。普通列車は、札幌駅直通が朝に1往復存在する以外は小樽駅で系統が分離されている。小樽駅発着の列車は多くが倶知安駅折り返しで設定されているが、長万部駅発着の直通列車や、然別駅・余市駅折り返しの区間列車も設定されている。近年倶知安駅での系統分割が増加しており、長万部駅・蘭越駅発着の列車は倶知安駅折り返しとなるものが多い。

小樽駅に近づくにつれて運行本数が増え、余市駅 - 小樽駅間では1時間に1 - 2本程度（時間帯により2時間近い間隔が開くこともあり、並行の路線バスがはるかに多く設定されている）の運転となっている一方、長万部駅 - 蘭越駅間では1日に下り4本・上り5本のみの運行になっている。

2010年12月4日現在、快速「ニセコライナー」1往復と朝の倶知安発苫小牧行き1本、夜の小樽発倶知安行き1本を除き、ワンマン運転を実施している。例外があるのは、該当列車がワンマン運転に対応していないキハ201系による運用のためで、小樽駅 - 倶知安駅・蘭越駅間でも車掌が乗務している。

 小樽駅 - 札幌駅 - 岩見沢駅間 

札幌近郊区間として千歳線直通の快速「エアポート」および普通列車が札幌駅を基軸に運転されている。札幌を起点とした都市圏輸送量（平成15年）は札幌駅 - 小樽駅間で年間2,365万人、札幌駅 - 岩見沢駅間で年間1,440万人に達している。ただし、札幌駅が始発・終着となる列車はあまり多くなく、札幌駅を越えて両方面を直通する運行形態が中心となっている。函館本線内で手稲・小樽方面と江別・岩見沢方面を結ぶ列車のほか、手稲・小樽方面と千歳線の千歳・新千歳空港および室蘭本線の苫小牧方面を結ぶ列車も多い。また手稲駅 - 札幌駅間には、特急車両の札幌運転所への回送を兼ねた「ホームライナー」が朝に下り3本運転されている。

小樽駅・手稲駅・札幌駅発着で岩見沢駅からさらに滝川方面と直通する列車も朝夕を中心に存在し、旭川駅発着列車も1往復設定されている。

桑園駅 - 札幌駅間は札沼線（学園都市線）用の単線が、札幌駅 - 白石駅間は千歳線用の複線がそれぞれ別線として存在し、いずれの列車もその別線を経由して札幌駅まで乗り入れている。

小樽駅 - 岩見沢駅間は日中の一部時間帯を除き、1時間間隔のパターンダイヤが組まれている。1時間に札幌駅 - 手稲駅間で7 - 8本、札幌駅 - 江別駅間で4 - 5本の運行となっている。手稲駅 - ほしみ駅・小樽駅間および江別駅 - 岩見沢駅間では運行本数が減って2 - 3本程度となる。

2007年9月30日までは、日中の大部分の区間快速が手稲駅 - 江別駅間を通して快速運転を行っていたが、翌10月1日のダイヤ改正でこの運行形態の列車は廃止され、手稲駅 - 札幌駅および札幌駅 - 江別駅間のどちらかを区間快速とする運転となった（「いしかりライナー」も参照）。

2020年3月14日ダイヤ改正より、区間快速通過駅の利用者増加に伴い、区間快速「いしかりライナー」を普通列車に置き換え・減便する形で運転を終了した。

手稲駅では快速と普通列車との相互接続が行われている。

2024年3月16日改正ダイヤの日中の各区間における1時間あたりの平均的運転本数は以下の通り。

+日中の運行パターン種別＼駅名小樽…ほしみ…手稲…札幌…白石…江別…岩見沢…旭川方面運行本数特急「カムイ」「ライラック」特急「宗谷」特急「オホーツク」  1-2本特別快速「エアポート」1本 →新千歳空港駅快速「エアポート」1本（小樽 - 手稲間各駅停車）  2本区間快速「エアポート」  2本普通札幌以西は下記と一体運用1本  2本  1本 一部千歳線直通   2本  1本   1本

 岩見沢駅 - 滝川駅 - 旭川駅間 
かつては普通列車の多くが小樽・手稲・札幌方面と滝川・旭川方面を直通運転していたが、現在では朝夕の一部列車を除いて岩見沢駅で系統分割されており、札幌方面と滝川・旭川方面を普通列車で移動する場合、ほとんどが岩見沢駅で乗り換えとなる。札幌駅 - 旭川駅間では快速運転を行っておらず、すべての普通列車が各駅に停車する。

苗穂・旭川・苫小牧の各運転所に配置されている気動車の効率的な運用のために、この区間では気動車による列車も設定されている。一部を除きワンマン運転を実施している。

区間列車は岩見沢駅 - 深川駅間および岩見沢駅 - 滝川駅間と滝川駅 - 旭川駅間に設定されているほか、深川駅 - 旭川駅間に留萌本線直通の普通列車が1往復のみ設定されている。なお、この区間で他に接続する室蘭本線・根室本線への直通列車は存在しない。

岩見沢駅 - 滝川駅間では1時間に1本程度の普通列車が運転されているが、2時間ほど間隔が開く場合もある。滝川駅 - 深川駅間ではさらに本数が少なく、頻繁に往来する特急列車とは対照的に3時間以上普通列車が運転されない時間帯もある。

 貨物輸送 
貨物列車は、五稜郭駅 - 長万部駅間と札幌貨物ターミナル駅 - 旭川駅間で運行されている。函館駅 - 札幌駅間を直通する長距離旅客列車と同様に、長万部駅 - 札幌貨物ターミナル駅間は急勾配の続く「山線」を避け、距離は長いが線形の良い室蘭本線・千歳線を経由する。

五稜郭駅 - 札幌貨物ターミナル駅間には、コンテナ車のみで編成された定期の高速貨物列車が1日上下21本ずつ設定され、室蘭本線・千歳線とともに、本州と北海道を結ぶ幹線として機能している。なお、函館駅 - 長万部駅間の貨物駅は五稜郭駅のみで、貨物列車は運転停車を除き、途中駅には停車しない。

また五稜郭駅は青函トンネル用電気機関車EH800形が乗り入れるため、道内の貨物駅で唯一着発線が電化されている。新函館北斗駅 - 小樽駅・東室蘭駅間は非電化のため、すべての貨物列車は五稜郭駅（函館貨物駅）にて機関車交換を行う。五稜郭以北に営業運転の電気機関車は乗り入れず、海峡線・道南いさりび鉄道線を除いて道内を運行するすべての貨物列車はDF200形ディーゼル機関車が牽引する。五稜郭駅以外の電化区間上（東室蘭駅 - 沼ノ端駅 - 札幌駅間と小樽駅 - 北旭川駅間）にある道内各貨物駅は着発線を含めすべて非電化である。

札幌貨物ターミナル駅 - 旭川駅間で運行される列車は、基本的に宗谷本線に乗り入れ北旭川駅を起点・終点としている。この区間では、高速貨物列車に加え、専用貨物列車も運行されている。定期の高速貨物列車は、札幌貨物ターミナル発北旭川行が1日4本、北旭川発札幌貨物ターミナル行が1日2本運行されているほか、北旭川発で岩見沢駅から室蘭本線に乗り入れ、苫小牧・東室蘭方面へ向かう列車が1日2本運行されている。季節運行の臨時高速貨物列車は、根室本線富良野駅や石北本線北見駅と札幌貨物ターミナル駅を結んでいる。札幌貨物ターミナル駅 - 旭川駅間の貨物駅は、札幌貨物ターミナル駅と滝川駅がある。

2014年5月までは室蘭本線本輪西駅 - 北旭川駅間で石油製品を輸送するタンク車を連結する専用貨物列車も運行され、苫小牧駅 - 岩見沢駅間を室蘭本線、岩見沢駅 - 旭川駅間を函館本線を経由していた。当時、本輪西発北旭川行の列車は1日2本運行されており、その逆の、北旭川発本輪西行のタンク車返送列車は1日1本運行されていた。これらの列車を補完する臨時の専用貨物列車も、本輪西駅 - 北旭川駅間に1日1往復設定されていた。

なお、JR貨物は札幌貨物ターミナル駅 - 苗穂駅間においても第二種鉄道事業者となっているが、この区間を定期的に運行する貨物列車は設定されていない。

 運行される列車 

定期列車のみ
 函館駅 - 新函館北斗駅間：普通・快速「はこだてライナー」
 函館駅 - 長万部駅間・白石駅 - 札幌駅間：特急「北斗」
 蘭越駅・倶知安駅 - 札幌駅間：快速「ニセコライナー」
 手稲駅 → 札幌駅間：「ホームライナー」（下りのみ）
 小樽駅 - 札幌駅 - 白石駅間：特別快速・快速「エアポート」（千歳線方面）
 札幌駅 - 白石駅間：特急「すずらん」「おおぞら」「とかち」、区間快速「エアポート」（千歳線方面）
 札幌駅 - 旭川駅間：特急「カムイ」「ライラック」、特急「宗谷」（宗谷本線方面）、特急「オホーツク」（石北本線方面）

 使用車両 
道南いさりび鉄道線直通列車については「道南いさりび鉄道線#使用車両」を、千歳線直通列車については「千歳線#運行形態」を参照。室蘭本線直通列車については「室蘭本線#使用車両」も参照。

 現在の使用車両 
普通列車は気動車と電車で運転されている。特急・快速列車については、各列車の記事も参照。

 電車 
 789系
 特急「カムイ」「ライラック」として札幌駅 - 旭川駅間で運用。
 721系
 小樽駅 - 滝川駅間の普通列車で使用されている。3両編成は731系、733系（0番台）、735系と連結して運転されることもある。岩見沢駅 - 旭川駅間の普通列車にも使用されていたが、737系への置き換えで消滅した。
 6両編成は小樽駅 - 岩見沢駅間の普通列車で使用されている。また特別快速・快速「エアポート」にも使用され、733系（3000番台）との共通運用である。
 731系
 小樽駅 - 滝川駅間で運用されている。721系・733系（0番台）・735系との併結運転があるほか、キハ201系との協調運転も行われている。
 733系
 0番台（3両編成）は小樽駅 - 滝川駅間で運用されている。721系・731系・735系と連結して運転されることもある。
 3000番台（6両編成）は小樽駅 - 岩見沢駅間の普通列車で使用されている。また特別快速・快速「エアポート」にも使用され、721系（6両）との共通運用である。
 1000番台（3両編成）は函館駅 - 新函館北斗駅間の快速・普通「はこだてライナー」として使用されている。
 735系
 小樽駅 - 滝川駅間で運用されている。721系・731系・733系（0番台）と連結して運転されることもある。
 737系
 岩見沢駅 - 旭川駅間の普通列車で使用されている。同区間にて使用されていた721系および気動車の運用を置き換えた。

 気動車 

 キハ283系
 特急「オホーツク」として札幌駅 - 旭川駅間で運用されている。かつては特急「スーパーおおぞら」「スーパー北斗」として運用されていた。
 キハ261系
 0番台は特急「宗谷」として札幌駅 - 旭川駅間で、1000番台は特急「北斗」「おおぞら」「とかち」および「ホームライナー」として手稲駅 - 白石駅間で運用されている。
 キハ40形
 函館駅 - 長万部駅間を走る大半の気動車普通列車が函館運輸所所属の本形式で運転されている。また、岩見沢駅 - 旭川駅間の普通列車の一部にも使用されている。長万部駅 - 札幌駅間での運用はH100形への置き換えで消滅した。
 キハ54形
 旭川運転所所属車両が留萌本線乗り入れ列車（1日1本のみ）として深川駅 - 旭川駅間で運用されるほか、同列車の間合い運用で深川駅 - 旭川駅間の区間列車に使用されている。
 キハ150形
 苫小牧運転所所属車両が室蘭本線の間合い運用としてキハ40形と共通運用で岩見沢駅 - 滝川駅間で運転され、旭川運転所所属車両がキハ54形と共通運用で留萌本線への送り込み運用として深川駅 - 旭川駅間で運転される。函館運輸所所属車両がキハ40形と共通運用で函館駅 - 長万部駅間で運転される。
 キハ201系
 苗穂運転所所属。快速「ニセコライナー」および普通列車として蘭越駅 - 岩見沢駅間で使用されている。前述の通り、731系との協調運転が行われている。
 H100形
 長万部駅 - 札幌駅間の普通列車と、札幌駅 - 旭川駅間の一部の普通列車で使用されている。ただし小樽駅 - 札幌駅間、および札幌駅 - 岩見沢駅間はそれぞれ苗穂運転所からの入出庫を兼ねた1本のみである。

 過去の使用車両 

 電車 
 485系1500番台：特急「いしかり」
 781系：特急「いしかり」「ライラック」「ホワイトアロー」
 711系：急行「かむい」「さちかぜ」・普通列車
785系：特急「ライラック」「スーパーホワイトアロー」「スーパーカムイ」・臨時特急「モーニングエクスプレス」・「ホームライナー」

 気動車 
 キハ150形：長万部駅 - 札幌駅間の普通列車
 キハ281系：特急「スーパー北斗・北斗」に使用。
 キハ21形・キハ22形：急行「らいでん」・「いぶり」・「ニセコ」・「せたな」・快速「アイリス」「せたな」・普通列車
 キハ24形：急行「せたな」・普通列車
 キハ27形・キハ56形：急行「らいでん」・「ライラック」（後の札幌 - 旭川間特急とは別）・快速「ミッドナイト」・普通列車
 キハ82系：特急「北海」
 キハ183系：特急「おおとり」「北海」「オホーツク」「北斗」

 客車 
 スハ43系：急行「ニセコ」・「ていね」に連結。
 50系51形：普通列車
 14系：急行「はまなす」、急行「ニセコ」に連結。
 24系25形：急行「はまなす」、寝台特急「北斗星」・「トワイライトエクスプレス」に連結。
 E26系：寝台特急「カシオペア」に連結。

 データ 

 路線データ 
 北海道旅客鉄道（JR北海道）…第一種鉄道事業者
 函館駅 - 大沼公園駅 - 駒ヶ岳駅 - 小樽駅 - 旭川駅間：423.1 km
 大沼駅 - 渡島砂原駅 - 森駅間：35.3 km、通称・砂原支線。
 七飯駅 - 大沼駅間：下り専用、独自の営業キロ設定なし（実キロ8.9 km）、通称・藤城支線、鉄道要覧に記載なし。
 日本貨物鉄道（JR貨物）…第二種鉄道事業者
 五稜郭駅（函館貨物駅） - 長万部駅間：108.9 km
 苗穂駅 - 旭川駅間：134.9 km
 大沼駅 - 渡島砂原駅 - 森駅間：35.3 km

 北海道旅客鉄道の支社管轄
 函館駅 - 熱郛駅間（砂原支線含む）：函館支社
 目名駅 - 滝川駅間：本社鉄道事業本部
 江部乙駅 - 旭川駅間：旭川支社

 軌間：1,067 mm（狭軌）
 駅数：92駅（起終点駅含む）
 一般駅：4駅（苗穂駅・茶志内駅・滝川駅・近文駅）。
 旅客駅：86駅
 貨物駅：2駅（札幌貨物ターミナル駅・函館貨物駅）
 起終点駅を含めたすべての駅が函館本線所属駅となっている。
 信号場数：5か所
 電化
 交流20,000 V・50 Hz（架空電車線方式）
 函館駅 - 新函館北斗駅間 (17.9 km)
 小樽駅 - 旭川駅間 (170.6 km)
 上記以外の区間は非電化。
 単線・複線
 単線区間：
 七飯駅 - 森駅間（8字区間）
 鷲ノ巣信号場 - 山崎駅間（隣駅）
 黒岩駅 - 北豊津信号場間（隣駅）
 長万部駅 - 小樽駅間
 複線区間：
 函館駅 - 七飯駅間
 森駅 - 鷲ノ巣信号場間
 山崎駅 - 黒岩駅間（隣駅）
 北豊津信号場 - 長万部駅間
 小樽駅 - 旭川駅間
 桑園駅 - 札幌駅間は札沼線の単線併設のため、三線である。
 札幌駅 - 白石駅間は千歳線の複線併設のため、複々線である。方向別運転。
 札幌貨物ターミナル駅 - 厚別駅間は貨物線の単線併設のため、三線である。
 閉塞方式
 自動閉塞式 下記以外の区間
 特殊自動閉塞式（電子符号照査式） 長万部駅 - 小樽駅間
 最高速度（2014年8月30日現在）：
 120 km/h（函館駅 - 長万部駅間、小樽駅 - 旭川駅間）
 95 km/h（大沼駅 - 渡島砂原駅 - 森駅間、長万部駅 - 小樽駅間）
 保安装置：
 ATS-DN …函館駅 - 長万部駅間、小樽駅 - 旭川駅間
 ATS-SN …全駅（ATS-DN併用区間含む）
 最急勾配：22.3 ‰（新函館北斗駅 - 大沼駅間など）
 IC乗車カード対応区間
 函館Kitacaエリア：函館駅 - 新函館北斗駅間
 札幌・旭川Kitacaエリア：小樽駅 - 旭川駅間

 輸送密度 
区間ごとの輸送密度は以下の通り。

+年度輸送密度（人/日）備考出典函館駅 - 長万部駅間長万部駅 - 小樽駅間小樽駅 - 札幌駅間札幌駅 - 岩見沢駅間岩見沢駅 - 旭川駅間1984年（昭和59年）度5,8152,61731,751札幌駅‐滝川駅間は20,753、滝川駅‐旭川駅間は10,4421993年（平成5年）度  43,96339,25812,036 2005年（平成17年）度  42,53942,52310,696 2006年（平成18年）度  42,70342,97610,823 2007年（平成19年）度  42,68743,19310,949 2008年（平成20年）度  42,89842,96610,577 2009年（平成21年）度  42,22642,50710,004 2010年（平成22年）度  42,48542,625  2011年（平成23年）度  42,66143,201  2012年（平成24年）度  43,42043,764  2013年（平成25年）度  44,70344,381  2014年（平成26年）度3,76567544,09943,0259,320 2015年（平成27年）度3,79969044,98143,9949,538 2016年（平成28年）度4,26565246,41743,4088,922 2017年（平成29年）度3,71265246,79343,5758,660 全体：同年度分より集計方法見直し小樽駅 - 札幌駅間・札幌駅 - 岩見沢駅間：新千歳空港へのアクセス好調、道東方面直通の特急運転再開により、前年度比増加2018年（平成30年）度3,65062547,03942,9268,237 2019年（令和元年）度3,39761845,56541,2847,682 新型コロナウイルス感染症（COVID-19）の拡大の影響等により、前年度比減少2020年（令和2年）度1,44334928,61526,4723,739 COVID-19の影響により、前年度比大幅減少2021年（令和3年）度1,63634029,58426,9854,180 2022年（令和4年）度2,71547936,35332,7766,164 2023年（令和5年）度2,98556940,83935,5786,784 

 収支・営業係数 
区間ごとの収支（営業収益、営業費用、営業損益）と営業係数は以下の通り。いずれも管理費を含めた金額である。▲はマイナスを意味する。なお、小樽駅 - 札幌駅 - 岩見沢駅間は、札幌圏各線と合わせたデータのみが公表されており、単独のデータは不明。

+函館駅 - 長万部駅間年度収支（百万円）営業係数（円）備考出典営業収益営業費用営業損益2014年（平成26年）度4,5668,848▲4,281194 線区別で最大の営業損失幅2015年（平成27年）度4,6979,666▲4,969206 線区別で最大の営業損失幅2016年（平成28年）度4,91810,504▲5,586214 線区別で最大の営業損失幅2017年（平成29年）度4,71710,934▲6,217232 同年度分より集計方法見直し2018年（平成30年）度4,48811,090▲6,602247 北海道胆振東部地震の影響による運輸収入減少、軌道修繕やレール交換増加により、前年度比拡大2019年（令和元年）度4,31011,076▲6,766257 2020年（令和2年）度2,0339,967▲7,934490 新型コロナウイルス感染症（COVID-19）の影響により、前年度比拡大2021年（令和3年）度2,2329,406▲7,174421 2022年（令和4年）度3,3819,854▲6,473291 2023年（令和5年）度3,97210,631▲6,659268 
+長万部駅 - 小樽駅間年度収支（百万円）営業係数（円）備考出典営業収益営業費用営業損益2014年（平成26年）度4392,506▲2,067570 2015年（平成27年）度4592,627▲2,168573 2016年（平成28年）度4302,755▲2,324640 2017年（平成29年）度4442,864▲2,420646 同年度分より集計方法見直し2018年（平成30年）度4302,791▲2,360649 2019年（令和元年）度4552,808▲2,353617 2020年（令和2年）度2283,034▲2,8061,329 新型コロナウイルス感染症（COVID-19）の影響により、前年度比拡大2021年（令和3年）度3403,024▲2,7891,287 2022年（令和4年）度3733,046▲2,674817 2023年（令和5年）度4633,089▲2,626667 
+札幌圏各線（小樽駅 - 札幌駅 - 岩見沢駅間含む）年度収支（百万円）営業係数（円）備考出典営業収益営業費用営業損益2014年（平成26年）度39,72142,383▲2,662107 2015年（平成27年）度40,61942,794▲2,175105 2016年（平成28年）度40,66846,136▲5,467113 修繕費・減価償却費増加により営業費用増加 2017年（平成29年）度42,07444,566▲2,492106 新千歳空港へのアクセス好調、道東方面直通の特急運転再開、減価償却費増加により、前年度比改善。同年度分より集計方法見直し2018年（平成30年）度41,84244,597▲2,755107 修繕費増加により、前年度比拡大2019年（令和元年）度42,13444,394▲2,260105 外注による除雪、減価償却費減少により、前年度比改善2020年（令和2年）度24,51642,394▲17,878173 新型コロナウイルス感染症（COVID-19）の影響により、前年度比拡大2021年（令和3年）度27,26642,125▲14,859154 2022年（令和4年）度36,51543,683▲7,168120 2023年（令和5年）度42,36545,365▲3,000107 
+岩見沢駅 - 旭川駅間年度収支（百万円）営業係数（円）備考出典営業収益営業費用営業損益2014年（平成26年）度5,8898,407▲2,517143 2015年（平成27年）度6,0518,916▲2,865147 2016年（平成28年）度5,6309,590▲3,960170 2017年（平成29年）度5,7169,262▲3,547162 同年度分より集計方法見直し2018年（平成30年）度5,3798,993▲3,615167 2019年（令和元年）度5,1678,809▲3,642170 2020年（令和2年）度2,3968,173▲5,777341 新型コロナウイルス感染症（COVID-19）の影響により、前年度比拡大2021年（令和3年）度2,7537,895▲5,141287 2022年（令和4年）度4,2338,449▲4,216200 2023年（令和5年）度4,8388,542▲3,704177 

 駅一覧 
全駅北海道内に所在。なお、全区間において駅ナンバリングが設定されているが、駅ナンバリング順ではなく、函館駅から下り方向に記述。駅ナンバリングの詳細については「北海道旅客鉄道の駅ナンバリング・区間カラー」を参照。

 函館駅 - 長万部駅間 

 本線 
 全駅渡島管内に所在。
 駅番号 … ()括弧内：信号場降格前の駅番号。
 停車駅
 普通列車は「はこだてライナー」（函館駅 - 新函館北斗駅間で運行）を含め、全旅客駅に停車。
 快速＝快速「はこだてライナー」 …●印：停車、｜印：通過。
 特急「北斗」は列車記事を参照。
 線路 … ||：複線区間、◇・｜：単線区間（◇：列車交換可能、｜：列車交換不可）、∨：ここより下は単線、∧：ここより下は複線
駅番号駅名営業キロ接続路線・備考所在地駅間累計H75函館駅- 0.0●函館市電：本線・大森線 …函館駅前停留場 (DY17)||函館市（貨）函館貨物駅3.43.4｜ ||H74五稜郭駅●道南いさりび鉄道：道南いさりび鉄道線||H73桔梗駅 4.9 8.3｜ ||H72大中山駅 2.1 10.4｜ ||亀田郡七飯町H71七飯駅 3.4 13.8｜北海道旅客鉄道：函館本線（藤城支線）∨H70新函館北斗駅 4.1 17.9●北海道旅客鉄道：北海道新幹線◇北斗市H69仁山駅 3.3 21.2  ◇亀田郡七飯町H68大沼駅 5.8 27.0 北海道旅客鉄道：函館本線（砂原支線・藤城支線）◇H67大沼公園駅 1.0 28.0  ｜H66赤井川駅 3.7 31.7  ◇茅部郡森町H65駒ヶ岳駅 4.8 36.5  ◇(H63)姫川信号場- 44.2  ◇H62森駅 13.0 49.5 北海道旅客鉄道：函館本線（砂原支線）∧(H60)石谷信号場- 56.1  ||H58石倉駅 12.6 62.1  ||H57落部駅 4.0 66.1  ||二海郡八雲町H56野田生駅 5.3 71.4  ||H55山越駅 4.6 76.0  ||H54八雲駅 5.1 81.1  ||(H53)鷲ノ巣信号場- 84.2  ∨H52山崎駅 7.2 88.3  ∧H51黒岩駅 6.1 94.4  ∨(H50)北豊津信号場- 98.2  ∧山越郡長万部町H49国縫駅 8.4 102.8  ||H47長万部駅 9.5 112.3 北海道旅客鉄道：室蘭本線∨

 藤城支線 
 下り列車専用の非電化・単線。
 両駅とも渡島管内亀田郡七飯町に所在し、列車交換が可能。
 愛称のない下り普通列車のみの運行。両駅に停車。
 藤城支線としての営業キロは設定されておらず、本線の営業キロ（13.2km）が適用される。

駅番号駅名接続路線H71七飯駅北海道旅客鉄道：函館本線（本線）H68大沼駅北海道旅客鉄道：函館本線（本線・砂原支線）

 砂原支線 
 全駅渡島管内に所在。
 この区間は非電化・単線。
 愛称のない普通列車のみの運行。全旅客駅に停車。
 線路… ◇：列車交換可能、｜：列車交換不可

駅番号駅名営業キロ接続路線所在地駅間累計H68大沼駅- 0.0北海道旅客鉄道： 函館本線（本線・藤城支線）◇亀田郡七飯町(N69)銚子口信号場- 6.8 ◇N68鹿部駅 14.6 14.6 ◇鹿部町N67渡島沼尻駅 5.4 20.0 ◇森町N66渡島砂原駅 5.3 25.3 ◇N65掛澗駅 3.7 29.0 ◇N64尾白内駅 2.9 31.9 ｜N63東森駅 1.6 33.5 ｜H62森駅 1.8 35.3北海道旅客鉄道： 函館本線（本線）◇

 長万部駅 - 小樽駅間 
 この区間は非電化・単線（ただし、小樽駅構内のみ交流電化）。
 累計営業キロは函館からのもの。
 線路 … ∨・◇・∧：列車交換可能、｜：列車交換不可。
 ※：目名駅は、ホームは1面1線であるが、ホームのない副本線を利用した列車交換が可能。
 ▽：倶知安駅は、長万部駅・蘭越駅方面同士の列車の交換は不可。
 定期列車は普通、快速「ニセコライナー」（下りは蘭越駅始発、上りは倶知安駅行き）ともに当区間は各駅に停車する。

駅番号駅名営業キロ接続路線所在地駅間累計H47長万部駅 - 112.3北海道旅客鉄道： 室蘭本線∨山越郡長万部町S32二股駅 8.6 120.9 ｜S30黒松内駅 11.4 132.3 ◇寿都郡黒松内町S29熱郛駅 8.1 140.4 ◇S28目名駅 15.4 155.8 ※磯谷郡蘭越町S27蘭越駅 7.6 163.4 ◇S26昆布駅 6.9 170.3 ｜S25ニセコ駅 9.3 179.6 ◇ニセコ町S24比羅夫駅 7.0 186.6 ｜倶知安町S23倶知安駅 6.7 193.3 ▽S22小沢駅 10.3 203.6 ◇岩内郡共和町S21銀山駅 9.8 213.4 ◇仁木町S20然別駅 10.7 224.1 ◇S19仁木駅 4.1 228.2 ｜S18余市駅 4.4 232.6 ◇余市町S17蘭島駅 5.3 237.9 ◇小樽市S16塩谷駅 6.9 244.8 ◇S15小樽駅 7.7 252.5∧

 小樽駅 - 札幌駅間 
 この区間は交流電化・複線。ただし、桑園駅 - 札幌駅間は三線で小樽方面への複線と札沼線直通線の単線を併設。
 累計営業キロは函館からのもの。
 駅名 … ：特定都区市内制度の「札幌市内」エリアの駅
 停車駅
 普通列車はすべての旅客駅に停車。
 特別快速＝特別快速「エアポート」、快速＝快速「エアポート」「ニセコライナー」（共通）
 凡例…●：停車駅、｜：通過駅、◆：「ニセコライナー」および日中時間帯の「エアポート」が停車
 「ホームライナー」は列車記事参照。

駅番号駅名営業キロ接続路線所在地駅間累計S15小樽駅 - 252.5●●小樽市S14南小樽駅 1.6 254.1●● S13小樽築港駅 2.1 256.2●● S12朝里駅 3.1 259.3｜◆ S11銭函駅 8.8 268.1｜◆ S10ほしみ駅 2.9 271.0｜◆ 手稲区S09星置駅 1.6 272.6｜◆ S08稲穂駅 1.1 273.7｜◆ S07手稲駅 （北海道科学大学 最寄駅） 2.0 275.7●● S06稲積公園駅 1.3 277.0｜｜ S05発寒駅 2.2 279.2｜｜ 西区S04発寒中央駅 1.8 281.0｜｜ S03琴似駅 1.5 282.5●● S02桑園駅 （JRA 札幌競馬場 前） 2.2 284.7●●北海道旅客鉄道： 札沼線（学園都市線）中央区01札幌駅 1.6 286.3●●札幌市営地下鉄： 南北線 (N06) ・ 東豊線 (H07) …さっぽろ駅北区

 札幌駅 - 旭川駅間 
 この区間は交流電化・複線。ただし、札幌駅 - 白石駅間は岩見沢方面への複線と千歳線直通線の複線を併設する方向別複々線。
 累計営業キロは函館からのもの
 駅名 … （貨）：貨物専用駅、◆・◇：貨物取扱駅（貨物専用駅を除く。◇は定期貨物列車の発着なし）、：特定都区市内制度の「札幌市内」エリアの駅
 停車駅
 平和駅は千歳線の駅で、千歳線直通の普通列車のみ停車
 エアポート＝特別快速・快速・区間快速「エアポート」
 ⚫︎＝全列車停車、｜＝全列車通過、▲＝快速のみ早朝・夜間に停車。詳細は、千歳線#駅一覧または列車記事を参照。
 特急列車の停車駅は、#運行される列車の各列車記事参照
所在地
納内駅 - 近文駅間で上川郡鷹栖町を通過するが駅は設置されていない。

駅番号駅名営業キロ接続路線・備考所在地駅間累計01札幌駅 - 286.3●札幌市営地下鉄： 南北線 (N06) ・ 東豊線 (H07) …さっぽろ駅北区H02苗穂駅 ◇ 1.9 288.2｜ 中央区東区H03白石駅 3.9 292.1▲北海道旅客鉄道： 千歳線白石区(H04)平和駅 2.2 294.3｜（岩見沢・旭川方面の列車はホームがないため全て通過）（貨）札幌貨物ターミナル駅 0.8 295.1｜A04厚別駅 1.4 296.5厚別区A05森林公園駅 2.0 298.5A06大麻駅 2.3 300.8江別市A07野幌駅 3.4 304.2A08高砂駅 1.3 305.5A09江別駅 1.8 307.3A10豊幌駅 6.2 313.5A11幌向駅 3.2 316.7岩見沢市A12上幌向駅 5.9 322.6A13岩見沢駅 4.3 326.9北海道旅客鉄道：室蘭本線A14峰延駅 8.4 335.3美唄市A15光珠内駅 4.5 339.8A16美唄駅 3.9 343.7A17茶志内駅◇ 4.4 348.1A18奈井江駅 6.2 354.3空知郡奈井江町A19豊沼駅 4.7 359.0砂川市A20砂川駅 3.2 362.2A21滝川駅◆ 7.6 369.8北海道旅客鉄道： 根室本線滝川市A22江部乙駅 8.4 378.2A23妹背牛駅 7.5 385.7雨竜郡妹背牛町A24深川駅 7.2 392.9北海道旅客鉄道：留萌本線深川市A25納内駅 7.4 400.3A27近文駅◇ 18.8 419.1旭川市A28旭川駅 4.0 423.1北海道旅客鉄道： 宗谷本線・ 石北本線・ 富良野線

 廃止区間 
 貨物支線
 小樽築港駅 - 浜小樽駅 (3.2 km)：1984年2月1日廃止。
 桑園駅 - 札幌市場駅 (1.6 km)：1978年10月2日廃止。
 白石駅 - 東札幌駅 (3.0 km)：1986年11月1日廃止。
 東札幌駅 - 月寒駅 (2.7 km)：1973年9月10日千歳線（旧線）から編入。1976年10月1日廃止。
 近文駅 - 旭川大町駅 (2.9 km)：1978年10月2日廃止。
 南美唄支線
 美唄駅 - 南美唄駅 (3.0 km)：1973年9月9日廃止。貨物線だが、一時期客扱いがあった。
 上砂川支線
 砂川駅 - 下鶉駅 - 鶉駅 - 東鶉駅 - 上砂川駅 (7.3 km)：1994年（平成6年）5月16日廃止。
 旧線
 納内駅 - 神居古潭駅 - 春志内信号場 - 伊納駅：新線切り替えのため1969年9月30日廃止。

 かつて旅客駅だった信号場 
 銚子口信号場：旧・銚子口駅 (N69)。2022年3月12日旅客扱い廃止。
 姫川信号場：旧・姫川駅 (H63)。2017年3月4日旅客扱い廃止。
 石谷信号場：旧・石谷駅 (H60)。2022年3月12日旅客扱い廃止。
 鷲ノ巣信号場：旧・鷲ノ巣駅 (H53)。2016年3月26日旅客扱い廃止。
 北豊津信号場：旧・北豊津駅 (H50)。2017年3月4日旅客扱い廃止。

 廃駅・廃止信号場 
廃止区間上にあるものは除く。括弧内は営業キロ。

 亀田駅：1908年（明治41年）5月1日貨物駅化。1909年（明治42年）9月26日休止。1911年（明治44年）9月1日廃止。函館駅 - 五稜郭駅間（函館起点0.8 km）。
 熊の湯信号場：1966年（昭和41年）10月1日廃止。仁山駅 - 大沼駅間（函館起点22.5 km）。
 小沼信号場：1943年（昭和18年）9月30日開設、1948年（昭和23年）7月1日廃止。仁山駅 - 大沼駅間（函館起点24.9 km）。
 池田園駅 (N71)：2022年（令和4年）3月12日廃止。大沼駅 - 流山温泉駅間（大沼起点3.4 km）。
 流山温泉駅 (N70)：2022年（令和4年）3月12日廃止。池田園駅 - 銚子口駅間（大沼起点5.6 km）。
 新本別信号場：1945年（昭和20年）6月1日開設、1949年（昭和24年）8月1日廃止。銚子口駅 - 鹿部駅間（大沼起点11.4km）。
 東山駅 (H64)：2017年（平成29年）3月4日廃止。 駒ヶ岳駅 - 姫川駅（現・姫川信号場）駅間（函館起点40.1 km）。
 森川信号場：1944年（昭和19年）2月1日開設、1945年（昭和20年）12月1日廃止。姫川駅 - 森駅間（函館起点46.1 km）。
 桂川駅 (H61)：2017年（平成29年）3月4日廃止。森駅 - 石谷駅間（函館起点52.2 km）。
 本石倉駅 (H59)：2022年（令和4年）3月12日廃止。石谷駅 - 石倉駅間（函館起点60.0 km）。
 中ノ沢駅 (H48)：2024年（令和6年）3月16日廃止。国縫駅 - 長万部駅間（函館起点107.7 km）。
 蕨岱駅 (S31)：2017年（平成29年）3月4日廃止。二股駅 - 黒松内駅間（函館起点126.9 km）。
 上目名駅：1984年（昭和59年）3月31日廃止。熱郛駅 - 目名駅間（函館起点147.6 km）。
 山道駅：1904年（明治37年）7月18日廃止。銀山駅 - 然別駅間（営業キロ不詳）。稲穂トンネルの東口に存在した。
 張碓駅：1990年（平成2年）9月1日臨時駅化。1998年（平成10年）7月1日通年休止。2006年（平成18年）3月18日廃止。朝里駅 - 銭函駅間（函館起点262.9 km）。
 北五条仮乗降場：1908年（明治41年）8月17日廃止。
 競馬場前仮乗降場：1924年（大正13年）6月1日廃止。
 東岡信号場：1919年（大正8年）12月27日開設、1923年（大正12年）12月17日廃止。岩見沢駅 - 峰延駅間。
 光珠信号場：1920年（大正9年）9月11日開設、1924年（大正13年）6月1日廃止。峰延駅 ‐ 光珠内駅間。
 空知太信号場：1956年（昭和31年）10月20日仮乗降場化。砂川駅 - 滝川駅間 (函館起点367.0 km) 。
 深沢信号場：1966年（昭和41年）9月27日廃止。滝川駅 - 江部乙駅間 (函館起点374.1 km) 。
 伊納駅 (A26)：2021年（令和3年）3月13日廃止。納内駅 - 近文駅間（函館起点413.0 km) 。

 過去の接続路線 
 函館駅：青函航路（青函連絡船） - 1988年（昭和63年）3月13日廃止
 五稜郭駅：函館市電…五稜郭駅前停留場 - 1978年（昭和53年）11月1日廃止
 大沼駅（現在の大沼公園駅）：大沼電鉄 - 1945年（昭和20年）1月31日廃止
 銚子口駅：大沼電鉄…新銚子口駅 - 1952年（昭和27年）12月25日廃止
 森駅：渡島海岸鉄道 - 1945年（昭和20年）1月25日廃止
 国縫駅：瀬棚線 - 1987年（昭和62年）3月16日廃止
 黒松内駅：寿都鉄道線 - 1972年（昭和47年）5月11日廃止許可
 倶知安駅：胆振線 - 1986年（昭和61年）11月1日廃止
 小沢駅：
 岩内線 - 1985年7月1日廃止
 岩内馬車鉄道 - 1912年5月11日廃止
 余市駅：余市臨港軌道 - 1940年7月25日廃止
 南小樽駅：手宮線（貨物線） - 1985年11月5日廃止
 手稲駅：軽石軌道 - 1940年10月23日廃止
 桑園駅：札幌市電（桑園線）…桑園駅前停留場 - 1960年6月1日廃止
 札幌駅：
 札幌市電（西4丁目線・北5条線・鉄北線）…札幌駅前停留場 - 1971年10月1日 北5条線廃止、1971年12月16日 鉄北線 札幌駅前 - 北24条間、西4丁目線 札幌駅前 - 三越前間廃止
 札幌軌道 - 1935年3月15日廃止
 苗穂駅：
 定山渓鉄道 - 1969年11月1日廃止
 札幌市電（苗穂線） - 1971年10月1日廃止
 白石駅：定山渓鉄道 - 1945年3月1日 白石 - 東札幌間廃止
 野幌駅：夕張鉄道 - 1975年4月1日廃止
 岩見沢駅：幌内線 - 1987年7月13日廃止
 美唄駅：美唄鉄道 - 1972年6月1日廃止
 砂川駅：歌志内線 - 1988年4月25日廃止
 深川駅：深名線 - 1995年9月4日廃止
 旭川駅：
 旭川市街軌道 - 1956年6月9日廃止
 旭川電気軌道（貨物線） - 1973年1月1日廃止