The result left Guadeloupe in third place in Group 7 with three points, one behind the Dominicans and Martinique, which drew 1-1 in the first game of Thursday's doubleheader.
Loic Loval-Landre gave Guadeloupe the lead in the eight minute and Mocka added goals in the 11th and 26th minutes to help end a six-match losing streak for the Gwada Boys.
Vladimir Pascal tacked on a finale in the 69th before Hector Ramos scored his second goal in as many games -- and for the fourth time in five games -- for Puerto Rico in the 83rd.
Puerto Rico, which lost its third straight game, remained with no points and was eliminated.
In the early match, Domingo Peralta gave the Dominican Republic the lead in the 45th minute and Gael Germany equalized in the 71st for Martinique.
The result extended the Dominicans' unbeaten streak to eight games, while Martinique hasn't lost in six matches.
Only two teams will advance to the Caribbean Cup finals in Antigua & Barbuda in December. The group finale on Friday will have the Dominican Republic facing Puerto Rico, and Guadeloupe against Martinique.