| No. | Date | Category | Tournament | Surface | Partner | Opponents | Score |
| 1. | March 22, 2008 | Futures | Canada F3, Sherbrooke | Hard (i) | Daniel Chu | Travis Rettenmaier Rylan Rizza | 7–6(7–2), 3–6, [10–7] |
| 2. | October 19, 2008 | Futures | Mexico F12, Mazatlán | Hard | Fabrice Martin | Luís Díaz-Barriga Daniel Garza | Walkover |
| 3. | October 26, 2008 | Futures | Mexico F13, Ciudad Obregón | Hard | Fabrice Martin | Chris Klingemann Milan Pokrajac | 3–6, 6–4, [10–7] |
| 4. | March 22, 2009 | Futures | Canada F3, Sherbrooke | Hard (i) | Daniel Chu | Érik Chvojka Michal Pazicky | 4–6, 7–6(7–5), [10–7] |
| 5. | May 10, 2009 | Futures | Mexico F4, Coatzacoalcos | Hard | Vasek Pospisil | Kaden Hensel Adam Hubble | 6–3, 6–4 |
| 6. | May 17, 2009 | Futures | Mexico F5, Puerto Vallarta | Hard | Vasek Pospisil | Juan-Manuel Elizondo César Ramírez | 6–1, 2–6, [10–7] |
| 7. | July 19, 2009 | Futures | France F12, Saint-Gervais | Clay | Fabrice Martin | Baptiste Dupuy Pierrick Ysern | 6–2, 6–4 |
| 8. | November 29, 2009 | Challenger | Puebla, Mexico | Hard | Vasek Pospisil | Guillermo Olaso Pere Riba | 7–6(9–7), 6–0 |
| 9. | May 16, 2010 | Challenger | Biella, Italy | Clay | James Cerretani | Dustin Brown Alessandro Motti | 6–3, 2–6, [11–9] |
| 10. | September 12, 2010 | Challenger | Rijeka, Croatia | Clay | Lovro Zovko | Carlos Berlocq Rubén Ramírez Hidalgo | 1–6, 7–6(11–9), [10–5] |
| 11. | February 13, 2011 | Challenger | Quimper, France | Hard (i) | James Cerretani | Jamie Delgado Jonathan Marray | 6–3, 5–7, [10–5] |
| 12. | June 12, 2011 | Challenger | Nottingham, United Kingdom | Grass | Rik de Voest | Treat Conrad Huey Izak Van der Merwe | 6–3, 7–6(11–9) |
| 13. | March 18, 2012 | Challenger | Guadalajara, Mexico | Hard | James Cerretani | Tomasz Bednarek Olivier Charroin | 7–6(7–5), 6–1 |
| 14. | November 4, 2012 | Challenger | Eckental, Germany | Carpet (i) | James Cerretani | Tomasz Bednarek Andreas Siljeström | 6–3, 2–6, [10–4] |
| 15. | November 10, 2012 | Challenger | Loughborough, United Kingdom | Hard (i) | James Cerretani | Purav Raja Divij Sharan | 6–4, 7–5 |
| 16. | January 6, 2013 | Challenger | São Paulo, Brazil | Hard | James Cerretani | Federico Delbonis Renzo Olivo | 6–7(5–7), 6–1, [11–9] |
| 17. | April 6, 2014 | Challenger | Le Gosier, Guadeloupe | Hard | Tomasz Bednarek | Gero Kretschmer Michael Venus | 7–5, 6–7(5–7), [10–8] |
| 18. | May 3, 2014 | Challenger | Tunis, Tunisia | Clay | Pierre-Hugues Herbert | Stephan Fransen Jesse Huta Galung | 6–3, 7–6(7–5) |
| 19. | July 26, 2014 | Challenger | Lexington, United States | Hard | Peter Polansky | Chase Buchanan James McGee | 6–4, 6–2 |
| 20. | September 28, 2014 | Challenger | Napa, United States | Hard | Peter Polansky | Bradley Klahn Tim Smyczek | 7–6(7–0), 6–1 |
| 21. | October 12, 2014 | Challenger | Tiburon, United States | Hard | Bradley Klahn | Carsten Ball Matt Reid | 7–5, 6–2 |
| 22. | November 13, 2016 | Challenger | Knoxville, United States | Hard (i) | Peter Polansky | Ruben Bemelmans Joris De Loore | 6–1, 6–3 |