Tottenham took a 13th-minute lead through Lucas Moura's excellent free kick, but Girona answered back impressively to leave Spurs boss Mauricio Pochettino with plenty to ponder ahead of the start of the season.
The capital outfit will open their Premier League campaign away to Newcastle United next weekend, but Girona still have two more friendlies before starting their La Liga season at home to Real Valladolid on August 17.
Tottenham led in the 13th minute though, with the goal coming from a brilliant Lucas free kick.
Girona remained the team on the front foot, however, and the hosts levelled in the 22nd minute when Juanpe headed home, before Lozano turned a low Bernardo Espinosa cross into the back of the net for 2-1 in the 34th minute.
Luke Amos passed up a decent chance to level for Tottenham early in the second half, and the Premier League side were punished in the 54th minute when Portu fired home from inside the box to make it 3-1.
Girona's fourth of the match arrived just past the hour, and it was on-loan Manchester City midfielder Aleix Garcia that converted from close range after Portu had struck the post.
The home side continued to create chances as the match headed for its latter stages, but there were no more goals in Spain.
GIRONA: Bono (Giorgi 84'), Espinosa (Planas 71'), A Garcia (Vito 84'), B Garcia (Andzouane 78'), Granell, Juanpe (Ramalho 78'), Lozano (Soni 65'), Muniesa (Alcala 71'), Porro (Montes 78'), Portu (Aday 69'), Timor (Pere Pons 65')
TOTTENHAM: Vorm (Gazzaniga 46'), Amos, Aurier (Walker-Peters 46'), Davies, Eyoma, Georgiou, Lucas (Llorente 46'), Marsh, N'Koudou, Skipp, Son