王琨,琅笽臨沂人。祖父王薈,晉朝任衛將軍。父親王懌,不聰慧,與侍婢生王琨,名為崑崙。王懌後來娶南陽樂玄的女兒,無子,改王琨名字,立為子嗣。
王琨少時拘謹篤重,為堂伯父司徒王謐所喜愛。宋朝永初年間(420~422),武帝因其娶了桓修女兒,授他郎中、駙馬都尉、奉朝請。元嘉初年,堂兄侍中王華權重受寵,因門戶衰弱,待王琨如親兄弟,多次薦舉他。後任尚書儀曹郎,州治中。累官至左軍諮議,領錄事,出京任宣城太守,司徒從事中郎,義興太守。歷任都很廉潔。還都任北中郎長史,黃門郎,寧朔將軍,東陽太守。孝建初年,遷任廷尉卿,竟陵王驃騎長史,加授臨淮太守,又轉為吏部郎。吏部選辟,朝中權貴往往要來開後門,王琨規定從公卿到士大夫,以例任用兩門生。江夏王劉義恭曾要王琨照顧兩個人,後又派來給王琨做下屬,王琨回答說不行。
出都任持節、都督廣、交二州軍事、建威將軍、平越將軍、平越中郎將、廣州刺史。南方富實肥沃,在任者往往能聚斂巨富,世人稱「廣州刺史但凡從城門一過,便可得三千萬」。王琨不僅分文不取,還上表獻上俸祿的一半。州鎮原有鼓吹一部,他也上啟送還朝廷。及卸任,孝武帝知道他清廉,問他還有多少資?王琨說:「臣買房用了一百三十萬,別的東西就是應得的了。」皇帝很滿意他的回答。後任廷尉,加任給事中,又轉任寧朔將軍長史、歷陽內史。
皇上因王琨忠厚老實,調他任寵子新安王東中郎長史,加任輔國將軍,調任右衛將軍,度支尚書。出任永嘉王左軍、始安王征虜二府長史,加任輔國將軍、廣陵太守,都是孝武帝的幾個兒子。泰始元年(465),遷任度支尚書,不久加光祿大夫。
當初,堂兄王華的孫子王長承南齊書襲王華的爵位為新建侯,嗜酒過度多有失言。王琨上表說:「臣下的門侄作風不好,從孫王長是已故左衛將軍的後裔,少時資質猥劣,指望長大有所長進。現在更是昏酣,毫不檢點。故衛將軍王華忠肅奉國,善行澤及後世;而王長承襲封爵,將敗壞原來的基業。下面還有個小孫兒王佟品性端正謙退,很有祖風,如能被扶立為繼嗣,則死者和生者都將感荷皇上給予的殊榮,並可保下私祿。」
又出任冠軍將軍、吳郡太守,遷任中領軍。在郡任時因用朝捨錢三十六萬供給二宮諸王及作絳襖奉獻軍用,被降職為光祿大夫,不久加太常及金紫,加散騎常侍。廷尉虞和認為社稷應合為一神,王琨據典辯駁。當時虞和很得皇上親寵,朝廷很多人欽佩王琨強正。
明帝臨崩時,王琨出京任督會稽、東陽、新安、臨海、永嘉五郡軍事、左軍將軍、會稽太守,常侍如故。因失誤竟被關押起來,降號冠軍。元徽年間(473~476),遷任金紫光祿、弘訓宮太僕,常侍如故。任本州中正,加特進。順帝即位,進號右光祿大夫,常侍等如故。順帝遜位時,王琨陪同他交還帝位並辭別祖廟,都痛哭流涕。太祖即位,王琨領武陵王師,加侍中,配給親從二十人。
其時王儉為宰相,示意王琨用東海郡安排部下,王琨對傳話的人說:「告訴他,中央的三台五省,都是他定人用人;外方小郡,應當讓給寒賤人士,省辟還能再剝奪去嗎!」於是不答應這事。
王琨性情古板謹慎,但過於儉嗇,家人雜事,都要親自操持。公事朝會,都是半夜就早早起來,檢查衣裳,料理冠幘,如此再三再四,世人因此笑他。不久解去王師之職。
建元四年(482),太祖駕崩,王琨聞這個噩耗時,牛車不在家,離朝有幾里地,就步行入宮了。朝士都說王琨:「你實在應坐車,這樣有損國家威嚴。」王琨說:「今日奔赴國喪,都應如此才是。」不久得病,亡故,追贈左光祿大夫,別的官爵名位如故。時年八十四歲。