I had this problem for a long time, sometimes tab worked well, sometimes it didn't. Finally, the solution for me was to.. follow advice from org-mode manual! Here, in the section about conflicts with packages, under yasnippet.el paragraph there's an explanation:
The way Org mode binds the key (binding to [tab] instead of "\t") overrules YASnippet's access to this key.
And below there are two ways to fix it, the second approach worked for me, here's the code (updated to remove deprecated stuff):
(defun yas-org-very-safe-expand ()
(let ((yas-fallback-behavior 'return-nil)) (yas-expand)))
(add-to-list 'org-tab-first-hook 'yas-org-very-safe-expand)
(define-key yas-keymap [tab] 'yas-next-field)))
For it to work it might be necessary to re-load org-mode, so the hook gets called.
As @npostavs suggested, it's useful to mention that this solution works for org-mode version 9.1.2 and yasnippet version 0.12.2.