京都府京都市の生まれ。府立洛東高校を中退後、演劇活動をしていた兄の影響で芝居に興味を持つ。唐十郎率いる状況劇場の京都公演を見て上京、1971年に同劇団に入団する。73年の『ベンガルの虎』『海の牙』で注目され、『蛇姫様』75に主演。看板俳優だった根津甚八と人気を二分する存在となる。数本の映画に端役で出たのち、藤田敏八監督「十八歳、海へ」79で初の本格的な映画出演。反抗しきれない青年の停滞感を寡黙に演じつつ巧まぬユーモアを感じさせ、報知映画賞新人賞を受賞する。80年に状況劇場を退団後は、村上春樹原作、大森一樹監督の「風の歌を聴け」81の“僕”役などを経て、NHK大河ドラマ『峠の群像』82、TBS『ふぞろいの林檎たち』83の好演で知名度を上げる。85年、森田芳光監督「それから」と神代辰巳監督「恋文」でキネマ旬報賞、日本アカデミー賞の助演男優賞を獲得。ストイックなイメージで女性ファンを掴むが、翌86年の森田監督「そろばんずく」86では別人のようなハイテンションの怪演を見せ、観客を驚かせた。
以降も、実直な父親像や中年男の純情から、飄々とした三枚目まで多彩な役どころをこなし、一筋縄ではいかない性格俳優としての活躍を続ける。テレビドラマでも久世光彦演出によるTBS『男どき女どき』88、『思い出トランプ』90などの“向田邦子シリーズ”をはじめ、NHK『イキのいい奴』87・88、『カーネーション』11、TBS『キツい奴ら』89、『丘の上の向日葵』93、『深夜食堂』09・11、フジテレビ『ナニワ金融道』96~05、『Dr.コトー診療所』03・06、『幸せになろうよ』11など多数に出演。どんな役でも滲むシャイな軽みとダンディズムが最大の魅力で、舞台、CM出演やナレーションの仕事も数多くこなしている。84年、女優の中村久美と結婚するが、95年に離婚。2009年12月にモデルで女優の小梅と再婚した。