1988년 6월 중화인민공화국의 유일한 항공사였던 중국민용항공(CAAC) 항공 사업부가 분리되어 설립했다. 1998년 세계 최대 해운 기업인 코스코(COSCO)와 공동 출자하여 중국화물항공을 설립했다. 2001년 중국운남항공과 중국서북항공을 인수하였고 2002년 중국윈난항공과 중국서북항공을 인수, 합병하였다. 2010년 세계 박람회의 공식 후원업체가 되었고, 중국 정부의 승인을 받은 50개 기업의 하나로 알려졌다. 대한민국에는 1988년 청두발 훙차오 경유 김포 간 전세기가 처음으로 운항하였고 1992년 김포 - 훙차오 간 주 7회 운항이 시작되었다. 2010년 상하이 항공과 합병한 후, 대한민국 사무소가 대한민국 지사로 승격되었다.
2016년10월 11일상하이 훙차오 국제공항에서 중국동방항공기 2대가 활주로 침범 사고를 크게 일으켰다. 에어버스 A320인 5643편은 국내선 톈진행이었으며 36L 활주로에서 이륙 허가를 받았다. 활주로를 따라 가던 중 (에어버스 A330-300)인 중국동방항공 5106편이 유도로 B3를 통해 활주로로 진입했다. 5106편은 베이징발 36R번 활주로에 막 착륙한 상태였으며 터미널까지 택싱를 타고 갈 수 있도록 허가된 것으로 알려졌다. B3를 통해 활주로를 벗어나 유도로를 횡단한 뒤 유도로 H3을 통해 출발 활주로로 진입했다. 활주로 36L 문턱에서 2110m, A320이 이륙을 시작한 지점에서 2400m 떨어진 곳에 위치해 있다. 승무원들은 A330이 활주로로 진입하는 것을 알아차렸을 때 A320은 110노트로 가속하고 있었다. 조종실에서는 이륙을 계속했다. 그 항공기는 약 130노트의 속도로 갔고, A330은 이륙했다.
한국 승무원에 대한 대우가 엉망이다. 중국 내에서 코로나 19가 한창 퍼질 당시 한국인 승무원들을 중국 국내선에 집중 투입한 것에 이어 2020년 3월에는 갑자기 한국인 승무원들만 대량 해고 통보를 하여 논란을 일으켰다. 표면적인 이유는 한국 내 코로나 19유행으로 인한 수요 감소였으나, 비슷한 상황의 일본과 이탈리아 등 다른 국적 승무원들의 계약 해지 소식은 없었다고 하여 더욱 논란이 되고있다. 해고통보를 받은 직원들은 법적대응을 할 방침이라고 한다. 1심 판결은 부당한 해고가 인정된다며 그동안 밀린 임금을 지불해야한다고 판결했다. 중국동방항공이 근로 계약 갱신을 거절한 것은 적법한 절차가 아니였으며 한국인 승무원에 대해서만 갱신을 거절한 것은 ‘합리적 이유가 없는 차별’이라는 점도 지적했다.