1914년 9월 6일 개통되었으며, 총 연장은 223.7㎞이다. 강원도 철원·안변을 거쳐 원산시에 이르나 지금은 국토의 분단으로 서울 용산역에서 경기도 철원군 철원읍에 있는 백마고지역까지의 94.4㎞만 운행하고 있다.
경인선과 함께 국토를 가로질러 수도 서울과 동·서해를 잇는 간선 철도로, 함경선과 이어져 두만강 연안에 이르고, 국경을 지나면 대륙 철도에 접속되어 산업·군사상 막중한 위치를 점한다. 서울과 당시 동해안 제일의 항구였던 원산을 연결하는 경원선의 중요성은 경의선이나 경목선(京木線: 지금의 호남선)에 비하여 결코 작지 않았다.
따라서, 그 부설권을 획득하기 위한 제국주의 열강의 외교전 역시 매우 치열하였다. 1896년 9월 30일, 프랑스의 피브릴르회사(Fives Lile會社)가 주한 프랑스 대사를 통하여 경원선과 경목선 부설권을 청구하였으나, 우리 조정은 이를 거절하였다.
1898년 8월 1일 독일 총영사 크린(Krien,F.)이 한국 외부대신에게 경원선 부설권을 그들이 세운 회사 세창양행(世昌洋行)에 준허하도록 요구하였으나 역시 거절되었다. 독일측은 경인선과 경의선의 부설권이 이미 미국과 프랑스에 허여된 사실을 들어 같은 요구를 몇 차례 거듭하다가, 마지막에는 철도 부설 자금의 공급권이라도 얻어내려 하였으나, 끝내 받아들여지지 않았다.
이미 경인선과 경부선의 부설권을 획득하여 공사에 들어간 일본도 경원선부설권을 놓치지 않으려 들었다. 경원선 부설권이 일단 다른 경쟁국에 넘어갔을 경우, 그것이 그들의 대한정책(對韓政策)에 미칠 영향을 우려한 일본은 기회를 엿보다가 1899년 6월 17일 대리공사 하야시(林權助)로 하여금 한국 정부에 경원선 부설권을 요구하게 하였다. 그러나 이 역시 즉각 거부되었다.
이러한 일련의 줄기찬 외교적 압력에 대하여 우리나라 정부가 일관하여 내세운 원칙은 ‘철도와 광산 경영은 일체 이를 외국인에게 불허한다.’는 것이었다. 1899년 6월 17일 정부는 경원선의 부설을 박기종(朴琪淙) 등의 국내 철도 회사에 허가하고, 그 달 24일 이를 관보로 공포하였다. 9월 13일 궁내부내장원(宮內部內藏院)에 서북철도국을 설치하여 경의선과 경원선의 건설을 관장하도록 함으로써 철도 직영 방침을 더욱 분명히 하였다.
국내 철도 회사는 1899년 7월 21일동소문(東小門) 밖 삼선동(三仙洞)을 기점으로 하여 원산가도를 따라 의정부를 거쳐 양주군 비우점(碑隅點)에 이르는 약 40㎞ 구간에 대하여 선로 측량을 시작하였다. 그러나 자금 사정으로 얼마 되지 않아 중단되고 말았다.
그러던 중 일본은 경의철도자금대부약관의 부수 약관에 들어 있던 ‘경원철도부설을 위하여 기채(起債)할 경우, 일본과 먼저 협의한다.’는 의무 조항을 교묘히 악용, 경원선에 대한 출자 권리를 내세우고, 한편으로 경원군용철도론을 내세웠다. 1904년 6월 29일부터 시작하여 서울~원산 사이 철도 부설 노선 답사를 한국 정부의 제지 없이 마친 일본은 그 해 8월 27일 경원선을 군용 철도로 부설하기로 결정하여 발표하였다.
그리고 주한공사를 통하여 ‘일본의 경원선 부설과 경쟁 또는 병행하여 다른 철도를 부설하지 말 것’과 ‘토지 수용 등 필요한 편의를 제공할 것’을 강요하였다. 이리하여 경원선 부설은 경의선과 마찬가지로 일본 군국주의의 마수에 식민지 경영 수단으로 빼앗기고 만 것이다.
1910년 4월 용산쪽에서부터 선로 측량이 시작되어 그 해 10월 15일 용산에서 기공식이 거행되었다. 이듬해 3월 다시 원산쪽에서 측량을 시작, 10월에 기공하였다. 1911년 10월 15일 용산의정부 구간 31.2㎞가 처음 개통되었고, 1914년 8월 14일 세포고산(高山) 구간 26.1㎞가 개통됨으로써 222.7㎞의 전 노선이 완공되었다.
1904, 1905년 러일전쟁 무렵에 건설하게 된 용산 방면 약 6.4㎞와 원산 방면 약 12.9㎞의 노선을 제외하면 모두 새로 건설된 것이었다. 그리하여 1914년 9월 16일 원산에서 경원선 전통식(全通式)이 거행되었다.
경원선은 추가령구조곡의 지구대(地溝帶)를 따라 건설되어 고산협곡의 험준한 지형적 장애를 상당히 극복할 수 있었다. 그러나 철령산지를 비껴 넘어야 하였고 기존 도로가 불비하였기 때문에 공정 전반이 쉽지는 않았다. 특히, 경술국치 직후라 민간인과 의병들의 저항과 습격이 잦았다고 한다. 일본인 측량대가 헌병대의 비호 아래에서도 한복으로 위장해서야 측량을 마칠 수 있었다는 사실이 그 단적인 예이다.
운행 초기에는 운송 실적이 저조하였으나, 연변에 금강산·석왕사(釋王寺)·원산해수욕장 등의 관광명소가 있어, 철에 따라 객차를 늘리거나 임시 열차를 운행하기도 하였다. 1928년 9월 1일원산과 상삼봉(上三峯)을 잇는 함경선이 개통되어 경원선과 연결되자, 3∼7일씩 걸리던 서울회령 간이 약 26시간, 서울청진 간이 약 22시간으로 단축되었고 그만큼 경원선의 구실도 커졌다.
또, 1931년 7월 1일 철원에서 내금강을 잇는 금강선이 개통되자 경원선 승객이 늘어나기도 하였다. 그러나 본래 군사 목적으로 건설되었고 연변의 산업이 부진한 데다 그 개발이 철저히 도외시되었기 때문에 운송 실적은 대체로 저조하였다.
광복 후 동북 지방의 개발이 활발해지자 큰 몫을 할 수 있었던 경원선은 국토 분단으로 원산까지의 운행은 중단되었다. 1967년 9월 한 달 동안에 세 번씩이나 무장 간첩에 의하여 폭파당하는 수난을 겪기도 하였다.
1982년 3월 18일 경원선 복선전철화사업이 시작되어 1986년 9월 2일 성북의정부 사이 13.1㎞가 완공됨으로써 수도권 전철 구간을 포함, 용산의정부 사이 31.2㎞가 복선전철화 되었다. 경원선은 용산에서 경부선·용산선과 갈라진 뒤, 청량리역에서 중앙선과 나누어지고, 다시 의정부에서는 서울 교외선과 연결된다.
경원선은 서울의 통근권인 용산의정부 간에 여객이 압도적으로 많고 활기찬 데 비하여, 그 이북은 개발이 제한된 접적 군사지구의 분위기가 짙다. 일반에서는 흔히 광운대역신탄리 사이 70.6㎞를 경원선이라 부르기도 하는데, 광운대역이 서울 지하철 노선에 포함되기 때문이다. 광운대역에서 백마고지역까지는 1시간 55분 정도 걸린다.
현재 서울특별시의 용산역에서 경기도 철원군 백마고지역까지 운행하는 경원선은 94.4㎞ 구간에 대하여 운행을 하고 있으며, 중간에 기차역은 모두 38개소 위치하고 있다. 서울 북부의 의정부, 동두천 등 서울로 출퇴근하는 승객이나 주말 나들이 승객들이 주로 이용하고 있으며, 2008년의 여객은 446만 2280명이었다. 무궁화호를 이용한 여객이 300만 명을 넘고 통근열차를 이용한 여객이 130만에 달한다. 경원선의 화물수송량은 2008년에 9만 7282톤이며, 그 가운데 가장 많은 화물은 광석으로 7만 5177톤이며 건설자재가 1만 8540톤에 달하였다. 여객 수송(총 철도 여객의 약 1%)에 비하여 화물 수송(총 철도화물의 약 1.4%)의 비중이 다소 크다. 2009년 현재 경원선은 동두천~신탄리 사이의 35.7㎞ 구간에 일반 통일호 열차가 일일 34회 왕복운행하고 있으며, 수도권 광역전철은 338회 왕복 운행하고 있다.