Klaasen smashed a 54-ball ton as South Africa chased down the target inside 30 overs to make it 1-1
South Africa vs West Indies, 3rd ODI
South Africa 264/6 (29.3 ov)
West Indies 260/10 (48.2 ov)
Result - South Africa won by 4 wickets
South Africa were in trouble at 87 for four chasing a West Indian total of 260 but Klaasen went for his shots and the home side chased down the target with 20.3 overs to spare.
The series was shared 1-1 after the first match was rained off.
"We try to play conditions and not the situation and the conditions were fantastic," said Klaasen.
Klaasen finished with 119 not out off 61 balls, hitting 15 fours and five sixes in Potchefstroom. He shared partnerships of 55 off 38 balls with David Miller (17) and a match-clinching sixth-wicket stand of 103 off 62 deliveries with Marco Jansen (43).
"It was a good wicket and it was one of my better knocks," said Klaasen after notching his second one-day international century and the fourth-fastest for South Africa behind two from AB de Villiers one from Mark Boucher.
De Villiers holds the world record with his 31-ball hundred against the West Indies in Johannesburg in 2014/15.
Alzarri Joseph rocked the South Africans at the start of their innings by taking the first two wickets with aggressive, short-pitched bowling.
He finished with three for 50 but the rest of the West Indian bowlers took heavy punishment.
Klaasen was particularly severe on spin bowlers Akeal Hosein, who took two for 49 in seven overs, and Yannic Cariah, who conceded 49 runs in 3.3 overs.
West Indies were bowled out for 260 after they were sent in by Aiden Markram, captaining South Africa in the absence of Temba Bavuma, who had a hamstring strain.
Brandon King struck 11 fours and a six in making 72 off 72 balls in an innings studded with elegant drives.
But the rest of the West Indian batsmen failed, apart from Nicholas Pooran, who hit 39 and Jason Holder, who made 36.
"We batted well in parts but we definitely did not perform with the ball," said West Indies captain Shai Hope.
The series did not count for the World Cup Super League but Markram said Tuesday's result was important ahead of two matches against the Netherlands at the end of the month which South Africa must win if they hope to qualify automatically for the World Cup.
"It’s nice to get momentum going into those games," said Markram.
West Indies Fall of wickets: 1-39 (Kyle Mayers - 6.6 ov), 2-110 (Shamarh Brooks - 18.6 ov), 3-120 (Brandon King - 21.2 ov), 4-152 (Shai Hope - 26.4 ov), 5-160 (Rovman Powell - 28.1 ov), 6-187 (Nicholas Pooran - 34.2 ov), 7-206 (Yannic Cariah - 38.5 ov), 8-221 (Jason Holder - 43.2 ov), 9-244 (Akeal Hosein - 46.1 ov), 10-260 (Odean Smith - 48.2 ov)
South Africa Fall of wickets: 1-15 (Ryan Rickelton - 2.2 ov), 2-36 (Rassie van der Dussen - 4.4 ov), 3-73 (Aiden Markram - 10.5 ov), 4-87 (Tony de Zorzi - 12.1 ov), 5-142 (David Miller - 18.2 ov), 6-245 (Marco Jansen - 28.2 ov)
Heinrich Klaasen | Player of the match and shared Player of the series: Pretty good wicket, probably one of my better knocks and am really proud of it. We were trying to play conditions and not the situations, conditions were fantastic today. Took Joseph on today and it was my day today. The conditions dictate how aggressive you can play and conditions were great today. Test cricket is hard, I ponder every time I make a mistake. I never doubt myself, I was hitting the ball well in the nets and I calmed everything down; the confidence stays up. I'm riding the wave at the moment and would like to keep it going. Always a good feeling to get the team over the line, very pleased to play a knock like this.
Shai Hope | West Indies captain and shared Player of the series: Not our day today, they clearly outplayed us. Thought we batted well but our bowling fell apart. We just didn't hit our straps today, they outplayed us today and we only ourselves to blame. I thought we were in the game but we didn't bowl as well as we needed to. You have to keep learning on the job, we don't focus on the negatives too much but we want to keep doing the job well. I wish the guys the best for the next series. You go out there and do your best every time you turn up for the West Indies.
Aiden Markram | South Africa captain: Worked out really well in the end, very special knock from Klaasen and well supported by Jansen when it was needed. It's a great way of looking at it, there will be a situation where conditions will be different but Temba (Bavuma) and the coach encouraged us to play our game. There was pretty simple feedback coming into this game, we wanted to stick to tight lines and not over-pitching it to them. We did well with the ball today. Jansen is nailing down the learning process, he was upset when he got out today. We had a chat regarding World Cup qualification, nice to have a win here but our next game is almost a week away.