As Cameron Dye grinded toward the finish line of the TriRock Philadelphia Triathlon on Sunday, the competitor he calls his "bogeyman" was gaining ground, 15 seconds - sometimes 20 - per mile.

Andy Potts has haunted Dye and caught him from behind so many times that Dye didn't even entertain thoughts of winning until the final mile and a half.

But by the time Dye reached the final straightaway, even Potts couldn't catch him, and Dye threw his hands up and high-fived the crowd lining the finish line on Martin Luther King Drive. For the second year in a row, Dye had held off his challenger to win the race.

"He's run me down so many times in races exactly like this, where I feel like I have a good swim and a good bike," Dye said. "It's out of sight, out of mind on this course. You can kind of sneak away."

The 2013 race was a repeat of last year's for the men, but the finish was even closer. The 29-year-old Dye won this time by a margin of 35 seconds and a time of 1 hour, 49 minutes, 2 seconds. Last year, the margin was 47 seconds.

Angela Naeth, 31, of Las Vegas, won the women's division in 2:01:41. Each winner earned a $6,000 first prize.

Dye, who is from Boulder, Colo., specializes in the shorter Olympic-distance races, such as the Philadelphia Triathlon, with a 1,500-meter swim, a 24.85-mile bike race, and a 6.21-mile run. He finished the swim one second behind Potts, and gained 2 minutes, 10 seconds on the bike. Potts said this is the shortest race he'll participate in all year.

"I was taking big chunks out of him every mile [in the run]," Potts said. "So he took too much time out of me on the bike."

Lafayette Hill's John Kenny had the best finish for a Philadelphia-based professional, placing fifth overall. Kenny suffered a foot injury in October 2011. At first, he didn't get a proper diagnosis, and he couldn't put any weight on a knuckle in his foot. Kenny returned to competitive racing just one month ago.

"Last year I raced here, but I couldn't run," Kenny said. "I was one of the top guys off the bike, and then I walked. I literally couldn't run."

Unlike Dye, who was near the lead for the entire race, Naeth didn't lead until almost halfway through the run. Naeth is used to making up ground, so she was comfortable even though she trailed by two minutes after the swim.

The final leg of the race follows a loop. On the first turnaround 11/2 miles in, Naeth saw Sara McLarty, and Naeth knew she was gaining ground. She passed McLarty about a mile later and cruised to the finish line.

McLarty finished third, behind Jenna Parker, who trailed Naeth by 41 seconds.