В 2006 году Жуан играл на своё первом чемпионате мира, где провёл все 5 матчей своей команды, выбывшей в 1/4 финала. В 2007 году Жуан сменил Жилберто Силву на посту капитана команды на Кубке Америки, выигранной Бразилией. В 2009 году он помог своей команде победить на Кубке конфедераций, где он пропустил конец турнира из-за травмы мышц левой ноги. Принял участие в ЧМ-2010, забил на этом турнире 1 гол.