Canberra and Melbourne both had edgy wins to qualify for the Hockey One men's final.