Amos, who took silver behind Rudisha at London 2012, looked to be boxed in as the Kenyan led on the final straight but found a burst of pace in the last 50 metres to win in one minute 45.18 seconds.
Rudisha, who broke the world record on his way to Olympic gold, took silver with South African Andre Olivier snatching bronze on a wet night in Glasgow.
"It is a really great moment for me," the 20-year-old Amos told reporters after capturing Botswana's second gold in the history of the Games.
"Trailing in the last 100 I panicked a little bit because I looked up at the screen and thought 'Oh, I'm in a box'. When you're in that position it's not easy to get out but my training partner (Olivier) was behind me.
"He let me through and then followed me. I'm lucky I was there with someone who really cares about me."
Asked if he now thought he was the main man at 800 metres after beating such a renowned champion, Amos laughed.
"I don't think I'm the man," said Botswana's flag bearer at the opening ceremony. "I will think I'm the man maybe when I break the world record.
"David congratulated me after the finish and said 'You're growing up'. I'm really happy to have someone like him in the race."
David Rudisha of Kenya celebrates after winning the silver medal in the men's 800m final at the 2014 Commonwealth …
The 25-year-old Rudisha had spoken of his desire to set another world record in Glasgow but looked short of his best throughout.
He has struggled to regain full fitness after a knee injury ruined his 2013 season and it showed as Amos charged past him to cross the line first.
"The crowd was really supportive. I was here a few weeks ago and won my race," Rudisha said, referring to the Diamond League meeting this month when he equalled the world's best time this year.
"I want to tell them not to lose hope because I'm coming back from the problems I've been going through. Hopefully next year will be another great year for me."
Despite the absence of Olympic champion Usain Bolt and silver medallist Yohan Blake in the 200, Jamaica secured a 1-2-3 with Rasheed Dwyer beating Warren Weir, who won a bronze at London 2012, and Jason Livermore.
Nigerian Blessing Okagbare sprinted to 200 gold in the women's final, adding to the 100 she won on Monday, ahead of English pair Jodie Williams and Bianca Williams.
Ese Brume also became the first Nigerian female to win the Commonwealth long jump crown for 40 years.
South African Cornel Fredericks and Kaliese Spencer of Jamaica won the men's and women's 400 hurdles respectively while India's towering Vikas Shive Gowda took discus gold, going one better than the silver he won in Delhi four years ago.
- Sports & Recreation