Maritimo have beaten third-placed Rio Ave in a tie that produced five goals.
Maritimo opened the scoring in the 30th minute through Dyego Sousa.
Raul followed Sousa's strike with a goal of his own four minutes later to give Maritimo a two-goal advantage going into half time.
Marvin Zeegelaar brought Rio Ave back into the tie after 66 minutes as he fired an effort past Maritimo keeper Romain Salin.
Antonio Xavier replied immediately for Maritimo, increasing the lead to two goals once more in the 70th minute.
An 82nd-minute strike from Helder Guedes handed Pedro Martins's side a lifeline but they were unable to find an equaliser.
Maritimo move up to seventh in the Primeira Liga table with the win, while Rio Ave remain in third.