MINNEAPOLIS — Republican U.S. Rep. Jim Hagedorn has defeated Democrat Dan Feehan in a hard-fought rematch of their 2018 race in a swing territory of southern Minnesota.

Nearly complete returns Thursday show Hagedorn winning by about 3 percentage points. His district stretches across Minnesota's southern tier.

Hagedorn won the seat two years ago on his fourth attempt. He's a former Treasury Department official and the son of former congressman Tom Hagedorn. He announced last February that he was being treated for kidney cancer but would continue to seek a second term. He's been a strong supporter of President Donald Trump.

The race was marked by accusations of ethical violations.

Democrats objected to Hagedorn's heavy use of taxpayer-funded mailings to the district's voters in an arrangement that financially benefitted a staff member and the staffer's family. They also accused him of paying a Mankato radio host who put him on the air frequently. And they alleged his use of an office owned by a donor violated campaign finance rules.

Hagedorn, in turn, accused Feehan of holding phony jobs with interest groups that paid him salaries between his runs for Congress. The groups countered that Feehan, an Afghanistan war veteran and former Defense Department official, did real work for them.