본관은 충주(忠州). 자는 창세(昌世), 호는 눌재(訥齋). 박광리(朴光理)의 증손으로, 할아버지는 선천군수 박소(朴蘇)이고, 아버지는 진사 박지흥(朴智興)이며, 어머니는 생원 서종하(徐宗夏)의 딸이다.
1496년(연산군 2) 진사가 되고, 1501년 식년 문과에 을과로 급제, 교서관정자(校書館正字)로 보임받고, 박사를 역임하였다. 승문원교검(承文院校檢)·시강원사서(侍講院司書)·병조좌랑을 지내고, 1505년 외직으로 전라도사(全羅都事)를 지냈다.
1506년 중종 초, 사간원헌납이 되어 종친들의 중용(重用)을 반대하다가 왕의 노여움을 사서 하옥되었으나, 태학생(太學生)과 재신(宰臣)들의 상소로 풀려나왔다.
그러나 1년 동안 논쟁이 그치지 않아 전관(銓官)에게 미움을 사서 한산군수로 좌천되었다. 그런데 사헌부가 대간(臺諫)을 외직에 보임하는 것은 옳지못하다고 논핵(論劾)하여 곧 종묘서영(宗廟署令)·소격서영(昭格署令)으로 옮겼으나, 부모 봉양을 위해 임피현령(臨陂縣令)으로 나아갔다.
3년 만기가 되자 사직하고 광산으로 돌아가 글을 읽으면서 스스로 즐겼다. 1511년(중종 6) 수찬·응교를 거쳐 담양부사로 나아갔다.
1515년 순창군수 김정(金淨)과 함께 상소해 중종반정으로 폐위된 단경왕후 신씨(端敬王后愼氏)의 복위를 주장하였다. 또 박원종(朴元宗) 등 3훈신(勳臣)이 임금을 협박해 국모를 내쫓은 죄를 바로잡기를 청하다가 중종의 노여움을 사서 남평(南平)의 오림역(烏林驛)으로 유배되었다.
1516년 방면되어, 의빈부도사(儀賓府都事)·장악첨정(掌樂僉正)을 역임, 이듬해 순천부사가 되었으나 그 해 겨울 어머니의 상으로 사직하였다. 1519년 선공감정(繕工監正) 등을 지냈다. 1521년 상주와 충주의 목사를 지내고, 만기가 되자 사도시부정(司䆃寺副正)이 되었다. 1526년 문과 중시에 장원하고 이듬해 작은 죄목으로 나주목사로 좌천되었고, 당국자의 미움을 사서 1529년 병으로 사직하고 고향으로 돌아왔다.
청백리(淸白吏)에 녹선(錄選)되었으며, 성현(成俔)·신광한(申光漢)·황정욱(黃廷彧) 등과 함께 서거정(徐居正) 이후 4가(四家)로 칭송된다. 또한 조광조(趙光祖)는 박상의 1515년 단경왕후 신씨 복위 상소가 강상(綱常)을 바로잡은 충언이었다고 극구 칭찬하였다.
저서로는 『눌재집(訥齋集)』이 있다. 광주(光州)의 월봉서원(月峰書院)에 제향되었고, 1688년(숙종 14) 이조판서에 추증되었다. 시호는 문간(文簡)이다.