Né en Ontario, il a trois ans lorsque sa famille déménage à Montréal, où il grandit dans le quartier défavorisé de Parc-Extension. Il est encore adolescent quand il entreprend un long périple dans les régions sauvages des Territoires du Nord-Ouest canadien. Il travaille sur les chantiers de chemins de fer et, la nuit, dans les dortoirs, commence à écrire. Cette période de sa vie servira de base à son roman Train d'enfer (The Timekeeper), paru en 1995.
Dans sa jeune vingtaine, il voyage et travaille en Europe et aux États-Unis, puis rentre à Montréal et devient chauffeur de taxi le jour afin de consacrer ses nuits à l'écriture. Il publie son premier roman, Sous l'aile du corbeau (High Water Chants) en 1977, immédiatement remarqué, mais c'est son deuxième roman, Onyx John (1985), qui lui assure une enviable notoriété.
À partir de 1999, sous le pseudonyme de John Farrow, il publie des romans policiers qui ont pour héros le jeune détective canadien Émile Cinq-Mars.
Comme dramaturge, il est surtout l'auteur de la pièce Le Pont (Long Long Short Long), créée en anglais à Montréal en , puis traduite en français et présentée à Montréal au Théâtre Jean-Duceppe en septembre et .
Publié en français sous le titre Sous l'aile du corbeau, traduit par Ivan Steenhout, Lachine (Québec), Éditions de la Pleine Lune, coll. « Miroirs » no 42, 2010, 316 pages (ISBN978-2-89024-203-6) ; réédition, La Tour-d'Aigues (France), Le Serpent à plumes, 2015, 333 pages (ISBN979-1-094-68002-5)
Onyx John (1985)
Publié en français sous le titre Onyx John, traduit par Ivan Steenhout, Paris, Le Serpent à Plumes, coll. « Fiction étrangère », 2001, 342 pages (ISBN978-2-842-61263-4) ; réédition, Paris, 10/18, coll. « Littérature étrangère », 2019, 503 pages (ISBN978-2-264-06863-7)
The Kinkajou (1989)
Publié en français sous le titre Le Kinkajou, traduit par Ivan Steenhout, Paris, Le Serpent à Plumes, coll. « Fiction étrangère », 2002, 459 pages (ISBN978-2-84261-325-9)
The True Life Adventures of Sparrow Drinkwater (1993)
Publié en français sous le titre La Vie aventureuse d'un drôle de moineau, traduit par Jacques Fontaine et Marie-Madeleine Raoult, Paris, Éditions UBU, 2005, 619 pages (ISBN2-35197-001-2) ; réédition, Paris, J'ai lu, coll. « Par ailleurs » no 8403, 2007, 603 pages (ISBN978-2-290-35346-2)
The Timekeeper (1995)
Publié en français sous le titre Train d'enfer, traduit par Ivan Steenhout, Lachine (Québec), Éditions de la Pleine Lune, 1998, 300 pages (ISBN2-89024-121-1) ; réédition, Saint-Laurent, Bibliothèque québécoise, 2000, 349 pages (ISBN2-89406-184-6) ; réédition, Paris, Le Serpent à Plumes, coll. « Motifs » no 94, 2000, 375 pages (ISBN978-2-84261-164-4) ; réédition, Paris, 10/18, coll. « Littérature étrangère » no 5345, 2018, 355 pages (ISBN978-2-264-06864-4)
The Fire Line (1995)
Publié en français sous le titre La Ligne de feu, traduit par Jacques Fontaine et Ivan Steenhout, Paris, Le Serpent à Plumes, coll. « Fiction étrangère », 2000, 330 pages (ISBN978-2-842-61216-0) ; réédition, Paris, Le Serpent à Plumes, coll. « Motifs » no 165, 2002, 418 pages (ISBN2-84261-397-X)
Publié en français sous le titre La Ville de glace, traduit par Richard Crevier, Paris, Grasset, coll. « Grand format », 2000, 455 pages (ISBN2-246-59021-3) ; réédition, Paris, LGF, coll. « Le Livre de poche » no 15382, 2002, 574 pages (ISBN2-253-15382-6)
Ice Lake (2001)
Publié en français sous le titre Le Lac de glace, traduit par Richard Crevier, Paris, Grasset, coll. « Grand format », 2002, 426 pages (ISBN2-246-62661-7) ; réédition, Paris, LGF, coll. « Le Livre de poche » no 37005, 2004, 574 pages (ISBN2-253-09028-X)
Publié en français sous le titre La Dague de Cartier, traduit par Jean Rosenthal, Paris, Grasset, coll. « Grand format », 2009, 619 pages (ISBN978-2-246-68501-2)
Publié en français sous le titre Le Pont, traduit par Marc Grégoire et Michel Dumont, Lachine (Québec), Éditions de la Pleine Lune, 2010, 272 pages (ISBN978-2-89024-170-1)