Profile for Murder
(1996)

After a fourth girl dies this time in her own pool, Michael Weinberg (Jeff Wincott) confronts Adrian Cross (Lance Henriksen) on his boat and a fight breaks out. Despite getting stabbed with a Marlin Spike (the type of murder weapon used in the killings), Michael overpowers Cross and springs a leak in the engine room.

Dr. Hanna Carras (Joan Severance) shows up on the docks and sees a shootout between Mike and Cross which ignites the petrol fumes sparking an explosion that seemingly blows up Cross. Cop Andy Sachs (Ryan Michael) finds out that the third victim, a law student, was brought in to bed Cross by Mike. He and Carras confront Mike at Cross' penthouse, where Mike is clutching a photograph depicting him and Cross graduating from Law School. Mike rants and raves that Cross stole away his fiancee from him, sending Mike down a path to frame Cross for a string of homicides by following Cross and he's one night stands. When the victims were alone, he'd puncture their brain stems with a Marlin Spike.

Andy gets shot but Hanna manages to stab Mike with his own weapon then shot him twice sending him crashing out of a window and plunging to his death on the streets far below.

Cross shows up still alive at Hanna's home, but leaves in disgust on seeing her back with Andy (throwing down a Marlin Spike as he leaves)

Thanks ND Woods!