В 1672 году Карл был объявлен совершеннолетним. Риксдаг, созванный по этому случаю, постановил продолжать редукцию и внешнюю военную политику Карла X. В силу союза с Францией Швеция должна была воевать с Бранденбургом. Но шведы несли поражение за поражением, проиграли битву при Фербеллине (1675), потеряли почти все свои ранее завоёванные владения. В альянс с Бранденбургом вступил и Кристиан V Датский. Войну с Данией решила битва при Лунде (в декабре 1676 года), одна из самых кровопролитных в северной истории, окончившаяся полным поражением датчан. Победа подняла расположение шведов к своему королю; замолкли ропот и протесты, король с большей энергией мог продолжать войну. На море побеждали датчане, на суше — шведы. В Померании бранденбургские войска заняли Штеттин. Датская и бранденбургская война окончились в 1679 году, первая — миром в Лунде, вторая — миром в Сен-Жермен-ан-Ле.