太原府人。早年从军。宣和元年（1119年），官至婺州观察使，步军都虞候。次年，改统制，参与镇压方腊起义。靖康元年（1126年）六月，担任建武军节度使。靖康元年八月，完颜宗翰率西路军进攻太原，太原宣抚使童贯望风而逃，东路军到达燕山府，长驱直入，直逼东京汴梁城下。王禀统领宣抚司兵，与太原知府张孝纯同守太原。西路军坚攻太原二百五十余日，「悉为王禀随机应变，终不能攻」。粮乏城破，与金兵巷战，身中数十创，携长子王荀投汾河死。张孝纯被俘。