В январе 1390 года Витовт поднял восстание. Подавлять их с Ягайло пришли польские войска. Два года в Княжестве шла междоусобная война. Позиции Витовта значительно усилились после брака его дочери Софьи с великим московским князем Василием, сыном героя Куликовской битвы Дмитрия Донского. Княжество бурлило, недовольное присутствием польских войск. Число сторонников Витовта быстро росло. 3 августа 1392 года в Острове Витовт и Ягелло подписали договор, определивший их дальнейшие взаимоотношения. Витовт стал Великим князем Литовским в союзе с Польской короной и под верховной властью польского короля. Сын Кейстута поклялся убийце своих родителей «навсегда оставаться в союзе с Польским королевством и Короной Польской». Ягелло титуловал себя верховным князем Литвы. Витовт, вернувший все земли отца, был вынужден отказаться от Киева и Волыни, которые отошли к Польше.
Ольгердовичи не приняли нового великого князя Литовского и не подчинились Витовту. Пять лет сын Кейстута, которому помогал Ягелло, боролся с другими сыновьями Ольгерда. Он победил, фактически уничтожил в Княжестве удельную систему. Он вернул Киев, Подолию и Волынь. В 1395 году, используя междоусобицу смолянских князей, Витовт занял Смоленское княжество. Великий князь Московский Василий Дмитриевич посетил тестя в его новом городе Смоленске. Он не протестовал.
В 1398 году, угрожая войной находившемуся в тяжелом положении Новгороду, Витовт добился у боярской республики признания своей власти над древним городом. Закрепиться в Новгороде ему помешала полтавская река Ворскла, остановившая его движение на восток. Правда к 1399 году Великий князь Литовский Витовт уже создал в Княжестве стройную и надежную систему власти и управлении. Он мог заявить королеве Ядвиге — «Мы не рабы Польши; предки наши никому не платили дани; мы люди свободные и добыли нашей кровью нашу землю». Витовт стал неограниченным господином Великого княжества Литовского.
Великий князь Литовский был окружен вельможами и магнатами, происходившими или из удельных князей, или являвшимися крупными землевладельцами. Непосредственно в Вильно действовал Совет господ, называвшийся «Паны — рада». Для решения главных проблем государства созывались всеобщие собрания — сеймы, на которые съезжались магнаты, бояре, шляхта. Войсками Княжества руководил гетман, он же был военным судьей. Канцлер являлся хранителем великокняжеской печати и вел государственные дела. Маршалок представлял дворянство, подскарбий занимался государствами и финансами и доходами. Воеводы с помощниками — каштелянами имели военную, административную и судебную власть в областях, старосты руководили поветами — районами.
Номинальным верховным собственником всех земель и фактическим владельцем государственных земель Княжества был великий князь. Князья, паны и часть бояр-шляхтичей были его вассалами. Большинство шляхтичей владело небольшими имениями и поместьями. Государственная власть и права сословий в Княжестве определялась особыми грамотами — привилеями, которые давались всей стране, отдельным областям, сословиям, поветам, шляхтичам, горожанам.
Литовские земли делились на два воеводства — Виленское и Трокское. Белорусские, украинские и русские земли располагались в Полоцком, Витебском, Смоленском, Киевском, Волынском, Полесском, Черниговском воеводствах. Суд «чинили» и управляли воеводствами наместники, которым помогали старосты. Позднее наместников стали называть воеводами.
Основная масса дворянства Великого княжества Литовского в XIII–XV веках назывались боярами. Литовские и белорусские бояре впервые были названы шляхтой в Городельском привилее 1413 года. Шляхта появилась в Польше в XIII–XIV веках из сословия рыцарей, воинов-профессионалов. Польские короли постоянно ссорились с магнатами и привлекали на свою сторону рыцарство, давая ему льготы, привилегии, расширяя права. Привилеи и позднейшие статуты оформили права шляхты на землю. Шляхта стала привилегированным сословием в Польше, Литве, Беларуси, Украине и являлась им до начала XX века. У шляхты была феодальная собственность на землю, между собой шляхтичи взаимодействовали на принципах иерархии.