Botha scored 42 while wicketkeeper-batsman Niall O'Brien hit 72 as the hosts made 222 for 7 batting first.
In reply, skipper Ryan Watson struck 83 and Neil McCallum 54 as Scotland looked to be cruising towards the winning target.
But the visitors lost their last seven wickets for 33 runs, with Botha chipping in with 3 for 27.
"It's been a huge boost to have Andre back in the squad and he's proved this week what a big player he is," said Ireland coach Phil Simmons.
"He always gets through his overs efficiently and his batting gives us options at the top of the order. I hope his fitness problems are behind him and he can continue to play good cricket with us."
Irish skipper Trent Johnston won the toss and opted to bat first but he must have been in a spot of bother when openers William Porterfield and Eoin Morgan fell cheaply.
Botha hit seven boundaries in his fluent innings before he was stumped by Colin Smith off Majid Haq.
Niall O'Brien saw brother Kevin O'Brien and Alex Cusack fall cheaply to leave Ireland struggling at 136 for 5 in the 41st over but Johnston's arrival upped the ante.
He saw Niall pass his half-century before launching Glenn Rogers out of the ground for the first six of the innings.
O'Brien then got in on the act with three successive fours off Rogers before Haq bowled him with a quicker delivery.
Johnston crashed Haq out of the ground for another maximum but the spinner had his revenge when he bowled him for 32 next ball.
But Dave Langford-Smith and Thinus Fourie (14 not out from six balls) scrambled 22 from the final 12 balls to set Scotland their daunting target.
The Scotts made the worst possible start when Fraser Watts was caught and bowled by Langford-Smith for seven in the fourth over.
Watson promoted himself to number three in the order and helped add 53 for the second wicket with Navdeep Poonia before the Warwickshire youngster was bowled by Botha for 23.
Omer Hussain then became Gary Kidd's first victim in one-day internationals when he was stumped for one.
But Watson and Neil McCallum mounted the recovery and the Scotland skipper moved to 50 from 83 balls with a single off Kyle McCallan.
The pair began cautiously but McCallum was soon into his stride and picked up the pace by smashing Cusack for six on his way to 50.
But with the run-rate climbing McCallum tried to repeat the trick off McCallan and was caught by Botha on the mid-wicket boundary in the 44th over.
And when Watson then skied Botha into the hands of Kevin O'Brien the writing was on the wall for the Scots.
Blain made just two before he was run out by McCallan and Smith (3) became Botha's third victim and Cusack secured the win when he had Gordon Drummond caught behind for six.
Ireland 222 for 7 in 50 overs (Niall O'Brien 72, Andre Botha 42, Trent Johnston 32; Majid Haq 3 for 59, Blain 1 for 19, Drummond 1 for 10) beat Scotland 199 all out in 49.3 overs (Ryan Watson 83, McCallum 54, N S Poonia 23; Andre Botha 3 for 27, Cusack 2 for 26, Langford-Smith 1 for 25) by 23 runs.