Cavalier claim final JPL semi-final spot after Tivoli stumble