Maginnis was educated at The Royal School in Dungannon and at Stranmillis College in Stranmillis in Belfast. He worked as a teacher for a number of years before joining the Ulster Defence Regiment (UDR) in 1971. After leaving the British Army with the rank of major in 1981, he became the Ulster Unionist Party (UUP) spokesman on internal security and defence, and was that same year elected to Dungannon District Council, on which he sat for twelve years until losing his seat in 1993.
Maginnis was the Ulster Unionist candidate for Fermanagh and South Tyrone in the second by-election in 1981, coming second. This by-election was caused by the death of sitting MP Bobby Sands on hunger strike. As a result of changes to the electoral law with the passing of the Representation of the People Act 1981, another hunger striker could not be nominated. Instead Owen Carron, who had served as Sands' election agent in the earlier election, was nominated and elected as a "Anti-H-Block Proxy Political Prisoner".
The following year, he was elected to the failed Northern Ireland Assembly, as a representative for the Fermanagh and South Tyrone constituency. At the 1983 general election he was elected to the House of Commons as the Member of Parliament for the constituency of the same name. Two years later, along with the rest of his Unionist colleagues, he resigned his seat in protest at the Anglo-Irish Agreement, but was re-elected in the subsequent by-election. He continued his protest by refusing to pay his car tax, for which he was sentenced to seven days' imprisonment in 1987.
He renewed his membership of Dungannon and South Tyrone Borough Council in 2001 when he was elected for Dungannon Town. However, in 2005 he chose to move to the neighbouring Clogher Valley electoral area in an attempt to boost the UUP vote. This strategy backfired and he again lost his seat.
He stood down as an MP at the 2001 General Election, and on 20 July of that year was created a life peer taking the title Baron Maginnis of Drumglass, of Carnteel in the County of Tyrone, and took his seat in the House of Lords, sitting initially with the UUP. In 2011, he took up the case of a victim of elder abuse, Barbara Hofschroer, known as "Grandma B". In May 2012, he called upon Theresa May, then Home Secretary, to investigate the role of North Yorkshire Police and York Social Services in what he described as the "persecution" of Barbara and her son and carer Peter by the authorities in pursuit of their attempts to defraud Barbara of her house.
Lord Maginnis was perceived to be on the more social liberal wing of the UUP along with Lady Hermon. He is one of only three MPs in the Ulster Unionist Party's history not to have been a member of the Orange Order (the other two being Enoch Powell and Lady Hermon), although he was a member of the Apprentice Boys of Derry.
He courted controversy by equating homosexuality with bestiality in an interview on BBC Northern Ireland's Stephen Nolan show in June 2012. Lord Maginnis said he was opposed to gay marriage because it was "unnatural" and he did not believe society should "have imposed on it something that is unnatural". He enquired: "Does that mean that every deviant practice has to be accommodated? Will the next thing be that we legislate for some sort of bestiality?" The comments prompted the Ulster Unionist Party leader, Mike Nesbitt, to state that Maginnis expressed his views in a personal capacity and did not reflect party policy. Maginnis's remarks were also condemned by Gay Rights groups. That same month, at the behest of Nesbitt, he suffered the withdrawal of the UUP party whip over his comments; Maginnis subsequently resigned from the UUP on 28 August 2012.
In August 2013 Lord Maginnis was found guilty of an "angry and abusive tirade" following a road rage incident, and was fined.
In 2016, Lord Maginnis received a heavy fine after having refused to pay a small fine for having the wrong ticket for a train journey between Gatwick Airport and London.