장사성은 지금의 장쑤성 타이저우 바닷가 마을에서 태어났습니다. 어릴 적 이름은 장구사였고, 집안은 대대로 소금밭에서 일하며 소금을 배로 나르는 일을 했습니다. 당시 소금은 나라가 사고파는 것을 독차지한 물건이라, 인부들은 힘든 일을 하고도 관리와 소금 상인에게 늘 시달렸습니다. 1353년 그는 관리의 횡포를 참지 못하고 동생들과 소금 인부 열여덟 명을 모아 들고일어났습니다.
그는 고우성을 손에 넣고 스스로 성왕이라 칭하며 대주라는 나라를 세웠습니다. 1354년 원의 승상 톡토가 대군을 이끌고 고우성을 에워쌌을 때 성은 함락 직전까지 갔습니다. 그런데 조정의 권력 다툼에 휘말린 톡토가 포위 도중에 갑자기 자리에서 쫓겨나면서 원의 대군이 흩어졌습니다. 이 한 번의 조정 다툼으로 장사성은 살아남았고, 원이 반란을 잠재울 마지막 기회도 함께 사라졌습니다.
1356년 그는 양쯔강을 건너 평강(지금의 쑤저우)을 차지하고 그곳을 근거지로 삼았습니다. 강남에서도 가장 기름진 이 땅에서 그는 세금을 가볍게 하고 학자와 화가들을 후하게 대접했습니다. 한때는 원에 형식적으로 항복해 벼슬을 받고 배로 곡식을 대도까지 보내 주기도 했는데, 이는 명분보다 실리를 택한 선택이었습니다. 1363년에는 다시 스스로 오왕이라 칭했습니다.
그러나 그는 얻은 땅을 지키는 데 마음을 두었을 뿐, 밖으로 세력을 넓히려 하지 않았습니다. 주원장이 파양호에서 진우량과 목숨을 건 싸움을 벌이던 1363년, 그는 뒤를 치지 않고 지켜보기만 했습니다. 진우량이 사라진 뒤 주원장의 창끝은 그에게로 향했습니다. 1366년 겨울부터 주원장군은 평강을 겹겹이 에워싸고 먹을 것이 들어가는 길을 끊었습니다.
열 달을 버틴 끝에 1367년 성이 무너졌습니다. 장사성은 스스로 목을 매려 했으나 부하에게 발각되어 붙잡혔고, 응천부(지금의 난징)로 끌려간 뒤 그곳에서 죽었습니다. 스스로 목숨을 끊었다는 기록과 맞아 죽었다는 기록이 함께 전합니다. 끌려가는 동안 그가 입을 열지 않았다는 이야기가 전해집니다.
쑤저우 사람들은 오래도록 그를 기억했습니다. 명나라가 들어선 뒤에는 그를 드러내 놓고 기릴 수 없었기 때문에, 음력 7월 30일 지장보살에게 향을 올리는 날에 슬쩍 그를 위해 향을 피웠다고 합니다. 사람들은 이 향을 그의 어릴 적 이름을 따 '구사향'이라 불렀는데, 이 풍습이 오늘날까지 이야기로 전해집니다.