世充的哥哥楚王王世伟的儿子，619年，被王世充封为代王。621年，唐朝秦王李世民攻打洛阳，王世充派王琬和长孙安世求救于窦建德。窦建德的皇后和大臣凌敬都建议窦建德袭击河东，但窦建德经不住王琬等人的哭诉，于是出兵攻打虎牢关，直接援救洛阳，李世民迎击。王琬骑隋炀帝宝马在阵前炫耀，尉迟恭看上了这匹马，尉迟敬德与高甑生、梁建方三骑直入敌阵，生擒王琬，夺得宝马，没人敢阻挡。之后，大败擒拿窦建德。王世充见到王琬、窦建德都被唐军俘虏，自己也归降了唐朝。