고려시대에는 감찰기구로서 어사대가 있기는 하였지만 조선시대의 사간원과 같은 독립된 간쟁 기구는 없었다. 최고 관서인 중서문하성에 소속된 낭사가 국왕에 대한 간쟁을 맡았다. 무신집권기와 원간섭기를 거치며 중서문하성의 위상이 크게 약화되고 명칭 역시 첨의부 · 도첨의사사 등으로 변경되었다가, 1369년(공민왕 18), 문하부라는 이름으로 바뀌어 조선으로 이어졌다.
1400년(정종 2)에 도평의사사가 폐지되고 의정부가 신설되었으며, 이듬해인 1401년(태종 1)에는 문하부 또한 혁파되었다. 이때 문하부 산하에 있던 간관들을 사간원이라는 이름의 독립 관서를 설치하여 이관시키고 사간대부, 지사간원사, 헌납, 정언 등으로 직제를 개편하였다.
1466년(세조 12)에 사간대부를 대사간으로, 지사간원사를 사간으로 명칭을 변경하였는데, 이로써 사간원은 대사간 · 사간 · 헌납 · 정언 등 4직책 4인 체제로 정착되어 『경국대전』에 수록되었다.
사간원은 사헌부와 함께 양사 혹은 대간으로 지칭되며 언론을 담당하였다. 『경국대전』에는 사간원이 간쟁과 논박을 담당한다고 규정되어 있다. 실제로 사간원에서는 인사 문제나 정책 집행과 관련한 사안에서 국왕에게 간쟁하며 시시비비를 논하였고, 관료들의 부정과 비리를 적발하여 탄핵하기도 하였다.
이때 대사간은 사간원의 수장으로서 사간 이하의 간관들을 통솔하며 논의를 주도하거나 사간원 내부의 이견을 조정하기도 하였다. 성현의 『 용재총화』에 따르면 사간원은 사헌부에 비해 내부 기강이 비교적 느슨하였으며, 이에 따라 대사간에 대한 예우에 있어서도 다소 자유로운 측면이 있었다고 한다.
1506년(연산군 12), 사간원을 폐지할 당시 대사간 직제 역시 함께 폐지되었으나, 몇 달 지나지 않아 중종반정이 일어나 복구되었다.