Spirit beat Fire in tense final to claim first Hundred title