Born in Jamundí, Rivas began his career in the youth ranks of local club Jamundí F. C.. In 2009 he joined the youth ranks of América de Cali, but only stayed at the club for six months. After leaving América he joined Once Caldas. Rivas eventually joined the first team and made his Categoría Primera A debut in 2012. On 9 May 2012, Rivas scored his first goal as a professional, scoring a late winner in a 3–2 victory over Fortaleza C.E.I.F. in a Copa Colombia match.
In 2013 Rivas joined Deportivo Cali at the request of coach Leonel Álvarez, with the club eventually buying his rights during June 2014. On 14 August 2013, Rivas made his debut for his new club in a 1–1 draw with Unión Magdalena in Copa Colombia, a match in which Deportivo would advance to the next round on penalties. On 18 September 2013, Rivas scored his first goal with Deportivo Cali in a 2–1 loss to Real Cartagena which eliminated the club from the cup. On 23 November 2013, Rivas scored his first league goal to help Cali to a 2–1 victory over his former club Once Caldas. On 29 January 2014, Rivas captured his first title with Cali as his side defeated Atlético Nacional on penalties after a 2–2 aggregate in the 2014 Superliga Colombiana. On 16 March 2014, Rivas scored his first two goals of the season to help Cali to a 2–1 victory over Patriotas Boyacá. On 8 April 2014, Rivas scored his first goal in Copa Libertadores in a 3–2 loss to Cerro Porteño. He added another brace on 3 August, in a 2–0 victory over Deportivo Pasto. On 28 August, Rivas scored his first goal in the Copa Sudamericana, helping Cali to a 3–0 victory over Peruvian side Universidad Técnica de Cajamarca. On 17 September, Rivas scored a second half equalizer to help Cali to a 2–2 draw with Peñarol at the Estadio Centenario in the Copa Sudamericana. He ended the 2014 season with 15 goals in 42 matches across all competitions.
In December 2014 it was reported that Orlando City SC would be signing Rivas for a $1.5 million fee from Deportivo Cali. On 26 January 2015, Orlando City SC officially announced the signing of Rivas. He made his debut with Orlando City on 8 March 2015 in a 1–1 draw with New York City FC. On 17 June 2015, Rivas scored his first three goals for Orlando City, all on penalty kicks, in a 4–4 draw with Charleston Battery in the U.S. Open Cup. Orlando went on to win the match after penalty kicks to advance in the tournament. On 30 April 2016, Rivas scored his first league goal for Orlando City, scoring a late equalizer in a 2–2 draw with New England Revolution. On 29 April 2017, Rivas scored his first goal of the season in a 2–1 victory over Colorado Rapids. On 17 May 2017, Rivas came into the match as a second half substitute and scored Orlando City's lone goal to help the club to a 1–1 draw against SJ Earthquakes.
On 3 January 2018, Rivas was traded to New York Red Bulls, along with teammate Tommy Redding, in exchange for Sacha Kljestan and $150,000 of Target Allocation Money. On 22 February 2018, Rivas made his debut for New York, coming on in the second half in a 1–1 draw against CD Olimpia in the first leg of the round of 16 match of the CONCACAF Champions League. On March 10, 2018, he scored two goals on his Red Bulls league debut in a 4–0 victory over Portland Timbers. During the season Rivas was loaned to New York affiliate side New York Red Bulls II, and on May 27, 2018, he scored his first goal for the side in a 4-1 victory over Indy Eleven. On 9 July 2018, Rivas was loaned to Atlético Nacional for the remainder of 2018. Rivas was released by New York in December 2018.
Hapoel Ra'anana
On 25 July 2019, Rivas joined Hapoel Ra'anana A.F.C. for their 2019-2020 season on a free transfer.
Career statistics
Personal
Rivas holds a U.S. green card which qualifies him as a domestic player for MLS roster purposes.