Portland through to grand final after thrilling win