OTTAWA - It shouldn't be news that the Conservatives have won a federal byelection in Calgary Centre — but Joan Crockatt made this one interesting.

In a night of byelection drama, Crockatt squeaked out a win in the riding right next to that of Prime Minister Stephen Harper in what should be a Tory fortress.

The Conservatives also won the Ontario riding of Durham, with Erin O'Toole easily reclaiming the seat vacated by former cabinet minister Bev Oda.

And on the Pacific coast, New Democrat Murray Rankin pulled clear of a robust challenge from Donald Galloway of the Greens after a long night in which the lead changed hands half a dozen times.

"We knew this would be a tough fight," said federal NDP Leader Tom Mulcair, who was on hand in Victoria to congratulate the newest member of his caucus.

The NDP is a party at the centre of Canadian life, and one that is on the move, Rankin said. "I see the faces of a great national party, steadfast in our determination to build a better Canada."

But it was Calgary — a city that's seen its share of political drama of late — that attracted all the attention as establishment candidate Crockatt ran neck-and-neck with Liberal challenger Harvey Locke for most of the evening, eventually edging ahead for a margin of just over a thousand votes.

The former journalist wound up winning with about 37 per cent of the popular vote, the lowest for an MP-elect in Calgary Centre since the riding was created in 1968.

"Conservative support in Calgary Centre remains strong and growing," the beaming victor maintained after arriving to a cheering throng at her campaign headquarters.

"It was a nail biting evening but I'm a new candidate, I'm not an incumbent and byelections are always challenging for a majority government."

Running in a bedrock small-c conservative seat, Crockatt ran a safe, low-key campaign that had the Liberal and Green contenders nipping at her Conservative heels.

Locke finished the night with almost 33 per cent of the popular vote — matching the Liberal party's 1993 high-water mark in Calgary Centre, while Chris Turner of the Greens had more than 25 per cent.

"I've always said that you either have a victory party or a wake," Locke said after popping a bottle of champagne. "So let's have a good wake."

Quoting a line from the Leonard Cohen song "Anthem" — "There is a crack in everything; that's how the light gets in" — Locke said, "I think we made a crack."

Byelections do tend to be hard on sitting governments, but Calgary Centre wasn't supposed to be a problem for the Harper Conservatives.

The riding hadn't seen a three-way race since Reformers and Progressive Conservatives were fighting for the right to roast a Liberal in the early 1990s. The combined conservative vote Calgary Centre hadn't fallen below 50 per cent since 1972.

But Crockatt's vocal support for the upstart Wildrose party in the last Alberta election appeared to divide the local conservative base, with some openly defecting to support Locke.

"More than 33 per cent of the people didn't want to rally to my standard, so I lost," said Locke.

"I think that the question for me as a Liberal that has been answered tonight is can a Liberal run competitively in Calgary and the answer is unquestionably, yes."

Turner also ran a strong campaign that may have been aided in the final stretch by Liberal gaffes elsewhere.

First, Liberal MP David McGuinty was quoted calling Alberta MPs "shills" for the oil industry and suggesting they "go home" and run for town council if they want to be so parochial.

Then a November 2010, French-language interview by Justin Trudeau, the Liberal leadership heir apparent, surfaced in which he stated that "Canada isn't doing well right now because it's Albertans who control our community and socio-democratic agenda."

Trudeau apologized but not before federal Conservatives had a field day, stalling Liberal momentum in Calgary Centre and making the Green option — and a welcome Liberal-Green vote split for Crockatt — more viable.

It all served to make a routine byelection electric.

The seat was made vacant when veteran MP Lee Richardson resigned to take a post as chief of staff to Alberta Premier Alison Redford.

Martha Hall Findlay, another Liberal leadership hopeful who, like Trudeau, spent time in the riding during the byelection, said Monday that perceptions of Calgary's political uniformity are changing.

"I've been involved with Calgary long enough to know it's not something that's all of a sudden changed," she said.

"I think what has changed is that there is a sense that maybe there's an opportunity for a representation that actually reflects who Calgarians are."

The one routine byelection of the night took place in central Ontario.

O'Toole — a former air force pilot and navy captain turned corporate lawyer — made it a quick night in Durham.

A cheer went up from his supporters when O'Toole hit 50 per cent of the popular vote, leaving NDP candidate Larry O'Connor with 26.8 per cent — an improvement for the party over 2011, but still far from enough.

"That's what you need," one O'Toole supporter enthused as his candidate broke the magical 50 per cent barrier.

The Liberal candidate Grant Hume, incidentally, managed to attract just 17 per cent of the vote.

The seat was vacated when Oda resigned following a series of spending and expense controversies that tarnished the Conservative brand as tight-fisted managers.

A beaming O'Toole stood with his wife and young daughter and thanked all the supporters packed into the legion hall, including his former hockey coach.

O'Toole said Oda's spending controversies weren't a major concern for voters he met while campaigning.

"That came up less and less as we got our message out and as people got to know me as a candidate and realized I'm from this community," said O'Toole, whose father John is a member of the Ontario legislature.

The House of Commons standings prior to Monday's byelections had the Conservatives safely in majority territory with 163 of a possible 308 seats. The NDP was next at 100 seats, followed by the Liberals at 35.

The Bloc Quebecois has four seats, while three others are held individually by Elizabeth May of the Green party, Conservative Independent Peter Goldring and Independent Bruce Hyer.

— With files from Lauren Krugel and Bill Graveland in Calgary, Will Campbell in Bowmanville, Ont., and Dirk Meissner in Victoria