多治見市立南ヶ丘中学校3年生の時に、全国中学校軟式野球大会への出場を経験している。
岐阜県立岐阜商業高等学校の2年生の夏に、内野手として第88回全国高等学校野球選手権大会に出場。1回戦の対智弁学園和歌山高等学校戦に「7番・三塁手」として出場し、1安打を放ったがチームは敗れた。3年生で投手に転向した[2]が、全国大会への出場は果たせなかった。1m90cm台の長身、高校通算18本塁打の長打力、投手としてエースを務めた強肩を買われて、2007年のドラフト会議の前には、複数の球団が三上を「野手」として指名する動きを見せていたが、投手にこだわる三上は法政大学へ進学した。
法政大学では東京六大学野球のリーグ戦通算10勝8敗、防御率2.52という成績を残した。大学の1年先輩・加賀美希昇、1年後輩の三嶋一輝とは、後にDeNAでもチームメイトになっている[3]。
大学卒業後は、JX-ENEOSへ入部。入部2年目には先発投手として、都市対抗野球大会でチームの大会史上最多優勝(11回)およびチーム51年振りの連覇に貢献した[4]。
2013年のNPBドラフト会議で、横浜DeNAベイスターズから4巡目で指名[5]。契約金5,000万円、年俸950万円(金額は推定)という条件で入団した。背番号は35。
2014年は、公式戦の開幕を一軍で迎えると、3月28日の対東京ヤクルトスワローズ戦(明治神宮野球場)に2番手投手としてプロ入り初登板。この試合から中継ぎで8試合(12イニング)連続無失点を記録したことや、クローザーを任されていたホルヘ・ソーサが開幕から不調だったことを受けて、4月29日の対中日ドラゴンズ戦(横浜スタジアム)から「野球人生で初めて」というクローザーへ転向した[6]。5月6日の対読売ジャイアンツ戦(東京ドーム)から5月31日の対千葉ロッテマリーンズ戦(QVCマリンフィールド)までの登板で7セーブを記録。新人投手による月間最多セーブの球団記録を更新した[7]。オールスターゲームにも、セントラル・リーグの監督推薦選手として出場[8]。9月14日の対巨人戦(東京ドーム)で19セーブを記録し、新人投手によるシーズン最多セーブの球団新記録(当時)を達成した[9]。シーズンを通じて一軍へ帯同し、一軍公式戦でチーム最多の65試合に登板。13試合に登板した巨人戦では、3ホールド、6セーブ、防御率0.00という好成績で、チームの9年振りカード勝ち越しに貢献した[10]。また、通算のセーブ数は21で、NPBの新人投手としては歴代5位の多さであった[11]。シーズン終了後の12月11日には、推定年俸3,200万円で契約を更改し、年俸の一部を横浜スタジアムの年間シート(2席)の購入に充てる意向を示した[10]。
2015年には、春季キャンプ中に右肘が炎症を起こし、一軍公式戦でのシーズン初登板は8月8日の対阪神タイガース戦(横浜)まで持ち越された[12]。さらに、新人の山﨑康晃がクローザーに定着していたため、主に山崎につなぐセットアッパーに起用された。9月29日の対阪神戦(阪神甲子園球場)では、同点で迎えた9回裏に登板し、先頭打者・江越大賀へ振り逃げを許した際に暴投を記録。この暴投によって、チームのシーズン暴投数がNPBタイ記録の68に達した[13]。さらに、野手陣の失策と捕逸で江越を本塁に生還させ、被安打・与四死球0ながらサヨナラ負けを喫した[14]。一軍公式戦での登板数は前年の3分の1(21試合)にとどまり、12月15日に推定年俸3,000万円(前年から200万円減)という条件で契約を更改[15]。ただし、通算の防御率は0点台と低く、山崎が調子を落とした9月には一時クローザーへ復帰した。シーズンの序盤には、自身と同じ法政大学出身で5歳年上の関根和歌香と結婚している[1]。
2016年は、オールスターゲームに、セントラル・リーグの監督推薦選手として2年振りに出場[16]。山崎が極度の不振に陥った8月には、田中健二朗と交互に一時クローザーを務めた。同年は2年振りに一軍にフルシーズン帯同し、一軍公式戦59試合の登板で、2勝4敗2セーブ32ホールド、防御率2.61という成績を残し、チーム史上初のクライマックスシリーズ進出へ貢献した。チームのレギュラーシーズン3位で初めて臨んだクライマックスシリーズでは、10月8日に、巨人とのファーストステージ第1戦(東京ドーム)8回裏の登板で初ホールドを記録。翌10月9日の第2戦でも、同点で迎えた8回裏に登板したが、勝ち越しを許し、CSで初めての敗戦投手になった。
2017年は、FA権の行使によって巨人へ移籍した山口俊から、選手会長を引き継いだ。レギュラーシーズンでは、一軍公式戦61試合に登板。自己最多の3勝を挙げ、前年と同じく34ホールドポイント(3救援勝利と31ホールド)を記録した。ただし、防御率が5.12に達するなど投球内容は不安定で、8月には一時二軍での調整を余儀なくされた[17]。チームのレギュラーシーズン3位で迎えたポストシーズンでは、監督のアレックス・ラミレスによる小刻みな継投策の下で、ワンポイント・リリーフやショート・リリーフに起用。CS全体で8試合中4試合に登板し、大雨の甲子園球場で催された阪神とのファーストステージ第2戦(10月15日)では勝利投手になった。さらに、福岡ソフトバンクホークスとの日本シリーズでも、6試合中3試合で救援登板。11月4日の第6戦(福岡ヤフオク!ドーム)では、同点で迎えた延長11回裏に登板したが、川島慶三にサヨナラ安打を浴び、チームは19年振りのシリーズ制覇を逃した。
2018年は、一軍公式戦で入団1年目に並ぶ65試合に登板。通算成績は1勝1敗25ホールドながら、防御率を3.05にまで持ち直した。さらに、走者のいない局面での投球間隔でセ・リーグ最短の10秒4を記録したため、NPBからスピードアップ賞を授与された[18]。シーズン終了後の11月には、DeNA球団がこの年から戦略的パートナーシップ契約を締結したオーストラリアン・ベースボールリーグのキャンベラ・キャバルリーに自身の希望で派遣され、派遣期間中にオーストラリア国内で契約更改に臨み、推定年俸1億500万円という条件で契約を更改し、1億円プレイヤーの仲間入りを果たした。契約更改後の12月7日には、オーストラリアと横浜市の球団事務所をスカイプで結びながら、契約更改に関する記者会見を実施した。ビデオ電話を活用した生中継方式の記者会見は、球団史上初めての試みであった[19]。
2019年は、オープン戦期間中の3月10日に京セラドーム大阪で開催された日本代表とメキシコ代表の強化試合6回表に、プロ入り後初めて日本代表の一員として登板[20][21]。レギュラーシーズンでも開幕一軍入りを果たしたが、開幕直後に右肘を痛め、公式戦5試合に登板しただけで4月13日に出場選手登録を抹消された。5月13日に患部のクリーニング手術を受けた[22]後に、8月20日のイースタン・リーグ対ヤクルト戦(戸田球場)から実戦に復帰[23]。9月8日から一軍へ再び合流した[24]が、同日の対中日戦(ナゴヤドーム)6回裏の救援登板で3失点を喫すると、翌9月9日に登録を再び抹消された[25]。
2020年は開幕直前の練習試合で結果を残せず二軍で迎える。伊勢大夢、平田真吾らの台頭もあり、手術に関連しない年では自己最少の10試合の登板にとどまった。12月15日の契約更改では減額制限いっぱいの25%ダウンとなる年俸6375万円(推定)でサインした[26]。
2021年は井納翔一、藤岡好明の退団によりチーム最年長投手として迎えた。4月16日の巨人戦(横浜スタジアム)で今季初登板を果たしたが、菅野智之の打球が直撃し、右すねの打撲で緊急降板、翌日に登録抹消となった[27]。その後4月30日に一軍へ復帰すると、右のワンポイントを中心に重用され、最終的に3年ぶりの40登板を達成した。しかし防御率3.86と安定はせず、勝ちパターンの一角を担うことは出来なかった。
2022年は、3月11日の楽天とのオープン戦で登板した際に打球が足に直撃した影響で開幕に間に合わず、リハビリを経て4月23日に一軍に合流した[28]。ビハインドでの登板を主に19試合に登板した。10月16日、2023年シーズンの契約を結ばないことを通知したと発表した。