Johan II van Kleef was de oudste zoon van graaf Johan I van Kleef en Elisabeth van Bourgondië-Nevers. Omdat hij 63 buitenechtelijke kinderen had, werd hij ook wel de Kindermaker genoemd.

Johan groeide, net als zijn vader, in zijn kinderjaren op aan het Bourgondische hof. Op latere leeftijd begeleidde hij Karel de Stoute op een van zijn veldtochten tegen de Zwitsers, hij was onder andere aanwezig bij het Beleg van Neuss en de Slag bij Nancy. In 1481 volgde hij zijn vader op als hertog van Kleef en als graaf van Mark-Altena.

Hoewel zijn vader hem had gewaarschuwd zich niet tegen het Huis Bourgondië te keren, deed hij dit echter wel door zich achter de steden Utrecht en Amersfoort te scharen, die zich tegen de bisschop David van Bourgondië opstelden, wat het begin was van de Stichtse Oorlog. Hij steunde oftewel stuurde zijn jongere broer Engelbrecht van Kleef met een troepenmacht naar het Sticht Utrecht. Op hetzelfde moment vonden ook de Hoekse en Kabeljauwse twisten plaats die zich tegen Maximiliaan van Oostenrijk hadden gekeerd, deze beheerde het erfgoed van Bourgondië en moest zich weren tegen de opstandige Hoeken. Johans troepen wisten beslag te leggen op veel steden en dorpen in het Sticht Utrecht en ook de steden Arnhem en Wageningen in het zwalkende Gelre wist hij te bezetten. Echter Maximiliaan kwam met een grote krijgsmacht eind augustus 1483 naar het Sticht waar hij het beleg van Utrecht opzette. Hij nodigde Johan uit om te komen onderhandelen, maar voordat dit kon plaatsvinden, was zijn broer Engelbrecht al gevangengenomen. Op 3 september 1483 werd een vredesbestand gesloten, waarbij Johan de steden Arnhem, Wageningen en 600 man voor een maand moest afstaan.

In 1477 brak de Gelderse Onafhankelijkheidsoorlog uit. De eerste akte van deze oorlog duurde tot 1482. Twaalf jaar later, in 1494, kreeg dit een vervolg in de tweede akte en duurde tot 1499. Aan het begin van de eerste akte, in 1478, belegerde Maximilliaan Venlo. Het Bourgondische leger van Johan gaf zich uiteindelijk over, en Maximiliaan nam de stad in.

Johans poging om het hof van Bourgondië na te bootsen, ruïneerde de schatkist van het hertogdom Kleef volledig. Hierdoor raakte hij in onmin met de standen en moest hij hen vele toegevingen doen en ambten verpachten. In 1496 bracht hij de eenmaking met Gulik-Berg tot stand, als tegengewicht voor de as Bourgondië-Habsburg. Zoals zijn voorgangers zette hij zich af tegen de aartsbisschop van Keulen en tegen Gelre.

Door de overeenkomst met Maximiliaan gesloten in 1483, ondersteunde hij deze in zijn strijd tegen Karel van Egmont, hertog van Gelre, voor het bezit van het Hertogdom Gelre. Na het overlijden van bisschop David van Bourgondië in 1496 probeerde hij een van zijn andere broers op de bisschopsstoel te krijgen; beide militaire en politieke acties mislukten. In 1499 nam hij weer de wapens op tegen het Sticht Utrecht, mogelijk vanuit een soort wrok omdat hij geen van zijn broers op de bisschopszetel kon krijgen. Het resulteerde in het Beleg en plundering van Rhenen en het platbranden van een grote weide bij de stad Utrecht, waarna in juli de vrede werd getekend met Frederik van Baden.