General Motors of Canada and the Canadian Auto Workers agreed a three-year contract late on Tuesday, narrowly avoiding a strike, the New York Times (NYT) reported.